Dace

Dace

  • 文档
  • API
  • 帮助
  • 博客

›教程

教程

  • 入门
  • 页面之间的导航
  • 使用公共组件
  • 创建动态页面
  • 创建简洁明了的网页地址
  • 获取页面数据
  • 与 Redux 共舞
  • 部署网站

概念

  • 命令行工具
  • 路由规则
  • 环境变量
  • 请求代理
  • 配置文件
  • 插件

常见问题

  • 自定义 eslint 规则
  • 自定义 stylelint 规则
  • 自定义 babel 规则
  • 自定义 postcss 规则
  • 自定义 webpack 配置
  • 自定义服务器端渲染模版
  • 自定义网页路由
  • 拆分打包
  • 将静态文件发布到 CDN

插件

  • Dace-plugin-redux

页面之间的导航

现在我们知道了如何创建一个 dace 应用程序并且运行它。 我们的示例应用程序只有一个简单的页面,但是如果你愿意的话,可以添加更多的页面。 例如,可以创建一个 About 页面,并添加内容到 src/pages/about.jsx。

import React from 'react';

export default () => (
  <h1>This is the about page</h1>
);

然后,我们可以打开 http://localhost:3000/about 来访问这个页面。 然后我们使用 HTML 的 <a> 标签来链接这些页面,但是它并不会执行客户端导航,它是执行的服务器端导航,这并不是我们想要的。

为了支持客户端导航,我们需要使用 dace 的 Link API,它是通过 dace/link 导出的。 下面我们来看看如何使用它。

设置

为了按照本课程学习,需要有一个示例 dace 应用程序,为此,你可以下载下面的这个应用程序作为学习案例:

git clone https://github.com/dacejs/learn-dace-demo.git
cd learn-dace-demo
git checkout 01.getting-started

可以用下面的命令来运行:

npm install
npm start

现在,访问 http://localhost:3000/。

使用 Link

现在我们将会使用 dace/link 来连接我们的页面。 添加如下代码到 src/page/index.jsx 模块文件

import React from 'react';
import { Link } from 'dace';

export default () => (
  <div>
    <h1>Hello Dace</h1>
    <Link to="/about">About Page</Link>
  </div>
);

在这个例子中,我们从 dace 导入了 Link 模块,并且像下面这样使用它:

<Link to="/about">About Page</Link>

我们再来创建 src/pages/about.jsx,内容如下:

import React from 'react';

export default () => (
  <div>
    <p>This is the about page</p>
  </div>
);

现在,再次访问 http://localhost:3000/,点击 "About Page" 连接,你将被带到 About Page 页面。

02

这是客户端导航,行为发生在客户端,没有请求服务器。 你可以打开浏览器开发工具的网络标签,看看有没有网络请求来验证。

下面是一个简单的任务:

  • 访问 http://localhost:3000/
  • 点击 "About Page"
  • 点击浏览器的后退按钮

描述一下,点击后退按钮后你看到了什么? 是的,客户端导航把你带回了 Home 页面。

客户端历史支持

当你点击后退按钮的时候,dace 把你带回了 Home 页面,这个过程完全是客户端实现的;dace/link 为你处理了所有 location.history 相关的事情,你甚至不需要编写任意一行客户端路由代码。

你需要做的只是简单的链接页面而已,就这样!

使用按钮进行链接

现在,我们需要一个按钮而不是一个链接,现在我们需要修改我们的导航代码,像这样:

<Link to="/about">
  <button>Go to About Page</button>
</Link>

更新网页标题

现在我们可以轻松的实现多个页面之间的切换。但在实际开发中,页面切换后我们希望网页标题、网页关键字、甚至网页描述等 meta 信息也跟随页面一起变动。

在 dace 中很容易就能实现这个功能,我们修改 src/pages/index.jsx 代码:

import React from 'react';
import { Link, Head } from 'dace';

export default () => (
  <div>
    <Head>
      <title>Hello Dace</title>
    </Head>
    <h1>Hello Dace</h1>
    <Link to="/about">About Page</Link>
  </div>
);

代码从 dace 导入了 Head 组件,并将它应用于页面。同样的方式修改 src/pages/about.jsx:

import React from 'react';
import { Head } from 'dace';

export default () => (
  <div>
    <Head>
      <title>About</title>
    </Head>
    <p>This is the about page</p>
  </div>
);

好了,我们再回到浏览器观察效果:当页面切换时,网页标题也跟着变了。

链接虽然简单,但是强大

这里,我们只看到了关于 dace/link 很基本的例子。 接下来的课程我们会更加深入的了解如何使用 Link 。 如果你想要了解 dace 的路由功能,参考 dace 路由文档 文档。

Last updated on 2018-12-14
← 入门使用公共组件 →
  • 设置
  • 使用 Link
  • 客户端历史支持
  • 使用按钮进行链接
  • 更新网页标题
  • 链接虽然简单,但是强大
Dace
文档
教程常见问题API
社区
Stack Overflow反馈
更多
博客GitHubStar
Dace
Copyright © 2018 dace