学习 Next.js: 入门

原始文档在 https://github.com/developerw... 如今搬过来.react

学习 Next.js: 入门
学习 Next.js: 页面之间的导航
学习 Next.js: 使用共享组件
学习 Next.js: 建立动态内容
学习 Next.js: 使用路由掩码建立干净的URL
学习 Next.js: 干净URL的服务器支持
学习 Next.js: 获取数据
学习 Next.js: 部署git

哪位分高的,帮忙建立一个 Next.js 的标签, 谢谢. 现暂时放在reactjs标签下面了. 新建文章有时间限制, 一会所有发上来, 这是最近两天翻译的 Next.js 学习资料, 原始文章在 http://learnnextjs.comgithub

入门

建立一个单页Javascript应用程序是一件很是有挑战的事情, 幸运的是, 开源世界给咱们提供了一些好用的工具来简化, 加速单页应用的开发.shell

Create React App 就是这样一种工具.npm

即便是这样, 建立单页应用有很是高的学习曲线. 仍然须要咱们学习客户端路由, 页面布局, 等技术. 若是你还想要运行服务器端渲染(SSR: Server Side Rendering), 事情就变得更加困难了.json

所以, 咱们须要一个简单而且可自定义的方案segmentfault

想一下咱们如何使用PHP建立Web应用程序. 首先建立一些文件, 编写PHP代码, 而后部署. 不用担忧路由的问题, Web应用程序只是在服务器端运行, 而且输出HTML而已.浏览器

Next.js

但这里咱们说的不是用PHP来建立Web应用程序, 咱们使用Javascript和React, 使用Next.js框架给咱们提供能力:服务器

  • 服务器端渲染(默认)
  • 自动代码切分, 加速页面加载
  • 简单的客户端路由(基于页面)
  • 基于Webpack的开发环境, 支持热模块替换(HMR: Hot Module Replacement)
  • 可使用Express 或其余Node.js服务器实现
  • 使用Babel和Webpack配置定制

设置

Next.js 能够在Windows, Mac和Linux运行. 只须要在系统中安装Node.js便可开始构建Next.js应用程序.app

除了须要一个文本编辑器编写代码, 一个终端调用命令以外, 没什么别的是必须的.

若是在Windows上运行, 建议使用 PowerShell. Next.js能够工做在任何Shell和终端下. 可是本指南中, 咱们使用UNIX相关的命令.
推荐在 Windows 下使用 PowerShell, 让工做方便一些.

运行下面的命令, 建立一个示例项目:

mkdir hello-next
cd hello-next
npm init -y
npm install --save react react-dom next
mkdir pages

而后打开package.json, 添加下面的NPM脚本命令:

{
  "scripts": {
    "dev": "next"
  }
}

如今, 一切就准备好了, 你能够运行下面的命令来启动开发服务器了.

npm run dev

在浏览其中打开: http://localhost:3000.

404 页面

打开 http://localhost:3000, 咱们看到的是一个 404 页面. 这个时候 Next.js 没有任何功能. 默认就是一个 404 页面.

404 Page

建立第一个页面

如今咱们来建立第一个页面. 在 pages 目录下建立一个名称为 index.js 的文件, 内容以下:

const Index = () => {
  return (
    <div>
      <p>Hell Next.js</p>
    </div>
  )
}
export default Index

或者

const Index = () => (
  <div>
    <p>Hell Next.js</p>
  </div>
)

export default Index

如今, 再次访问 http://localhost:3000, 在页面上你会看到 "Hello Next.js". 这里, 咱们只是从 pages/index.js 模块导出了一个简单的 React 组件. 同理, 能够编写你本身的模块而且导出它.

确保你的 React 组件为默认导出
译注: (default关键字)

如今, 咱们在Index页故意引入一个语法错误(删除尾部的</p>HTML标签), 以下:

const Index = () => (
  <div>
    <p>Hello Next.js
  </div>
)

export default Index

页面将会显示一个语法错误 There's an error showing the syntax error.

错误处理

默认状况, Next.js 会在浏览器中直接显示这些错误信息, 这方便你识别错误而且快速的搞定它.

你但你解决了这些错误, 页面会执行一个无刷新的更新. 这得益于Webpack提供的热模块替换功能, 在Next.js它是默认支持的.

你太棒了

看起来你已经构建了第一个Next.js应用程序. 有什么想法? 若是你喜欢, 能够进一步深刻下去.

Bugfix

2017-10-11: 修复以下问题

Index(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.
相关文章
相关标签/搜索