使用React服务端渲染Next.js框架构建一个简单项目
最近在学习React的服务端的东西, 感觉有些难度, 最近看的多了, 有点感觉了,比如React16.x中的服务端渲染(SSR)写的不错,很很简单,后来发现Next框架 很简单, 所以抄录下来了。
服务器端渲染
服务端渲染是指页面的渲染和生成是在服务端完成的,并将渲染好的页面返回客户端。
Next.js是什么
Next.js是一个使用React构建服务呈现Web的应用程序。它使用React语法,可以很好的实现代码的模块化,有利于代码的开发和维护。
Next.js的特性
1、默认服务端渲染模式
2、代码自动分隔使页面加载更快
3、以页面为基础的简洁的客户端路由
4、支持webapck热替换
5、可以运行在Express和其他Node.js的HTTP 服务器上
6、可以定制化专属的babel和webpack配置
7、基于React语法,可以实现代码模块化,有利于维护和开发
开始构建项目
1、在命令行依次输入如下命令:
D:\>mkdir next-demo
D:\>cd next-demo && npm init -y
D:\>npm install react react-dom next --save//本地依赖
D:\>mkdir pages
2、修改next-demo文件夹下的package.json中的“script”
{
"scripts": {
"dev": "next"
}
}
3、开启项目服务
D:\>npm run dev
服务启动完成以后,在浏览器中访问http://localhost:3000
404页面是Next.js默认生成的页面,之所以访问的页面是404是因为我们没有设置项目主页。
创建主页
Next.js是从服务端渲染生成页面,再返回给客户端展示。Next.js默认从 pages 目录下获取页面进行渲染并返回给客户端展示,且默认取 pages/index.js 作为项目的首页进行展示。
注意,pages 是默认存放页面的目录,路由的根路径也是pages目录。
import React from 'react';
export default class Index extends React.Component{
constructor(props){
super(props);
}
render(){
return (<div>
<p>Index Page!</p>
</div>)
}
}
//或者
const Index = ()=>(<div>
<p>Index Page!</p>
</div>)
export default Index
由于Next.js默认使用Webpack构建项目,使用它的热部署功能。创建完 pages/index.js 后,再访问 http://localhost:3000 即可看到我们设置的项目主页。
至此,基于React服务器渲染Next.js框架构建一个简单项目完成。
关于Next.js的更高级的用法,可以参考官方的例子:Next.js。
如果有写的不对的,或者理解不到位地方,欢迎各位指正。