原始文档在 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而已.浏览器
但这里咱们说的不是用PHP来建立Web应用程序, 咱们使用Javascript和React, 使用Next.js框架给咱们提供能力:服务器
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.
打开 http://localhost:3000, 咱们看到的是一个 404 页面. 这个时候 Next.js 没有任何功能. 默认就是一个 404 页面.
如今咱们来建立第一个页面. 在 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应用程序. 有什么想法? 若是你喜欢, 能够进一步深刻下去.
2017-10-11: 修复以下问题
Index(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.