安利一下next, react实现ssr超级好用的东西哈哈哈哈哈哈。
用它的理由
虽然react有提供renderToString和renderToStaticMarkup(第一个是生成完整的HTML, 第二个不包含额外的额外的data属性)
理论上只需要node搞下就可以了, 如果配合express、koa等框架就好了。
但是也是需要一些配置, 而next.js 就是零配置。
关于redux等方案, next.js也有例子
设置head tag, ajaxData 等都很方便
关于本博客
会出现最佳实践
在写这个的时候,我是一步一步运行, 以保证每一个细节都不会露。
如果出现错误, 那么就是next可能更新了, 或者npm跟nodejs的版本不对, 下面是next的github网址
以文字直播的形式写的
USE
mkdir一个工作区
mkdir mysyNext
cd mysyNext
install
npm install --save next react react-dom
初始化package.json
npm init -y
在package.json script里面添加这三条命令(dev、build、start)
{
"scripts": {
"dev": "next",
"build": "next build",
"start": "next start"
}
}
在根目录下新建pages文件
mkdir pages
新建首页
cd pages
vim index.js
i // 写入内容
export default () => <div>Welcome to next.js!</div>
:wq // 退出
执行
// 在执行的时候, 请保证3000端口没被占用
// 如果端口已经存在, 要执行自定义端口, npm run dev -- -p <your port here>.
npm run dev
-----·
mmp, 遇到了一个错误(没遇到错误的不管他), next不存在, 原来刚刚install的时候不是在工作区(mysyNext), 这时候把文件给我拷回去, cd回退到工作区的上一级
mv node_modules ./mysyNext/
然后把上一级的package.json里的dependencies
拷贝添加到工作区的package.json里, 拷贝如下
"dependencies": {
"next": "^6.0.3",
"react": "^16.3.2",
"react-dom": "^16.3.2",
"redux": "^4.0.0"
}
-----·
再执行下。 这时候, 工作区域偷偷出现了.next的文件, 接着执行完成。
打开http://localhost:3000
这时候工作区长这样
参考链接
https://github.com/zeit/next.js
https://redux.js.org/recipes/server-rendering
https://github.com/zeit/next.js/tree/master/examples/with-redux
网友评论