1.前情提要
- 最近我司官网重构,一个官网配一个后台,目的是动态配置官网内容,以前都是数据库写死的,为了更好的运营网站,体现品牌影响力,于是有了这一次大变革 。
- seo
- 界面快速响应,带来更好的用户体验
解决以上两种问题的最常用手段就是利用服务端渲染,所谓服务端渲染就是服务器直接返回html结构,很久很久以前,前后端不分离的年代,jsp渲染的方式就属于服务端渲染 。单页应用服务端渲染的方式一般是使用node作为中间层,加载组件之后,再向前台返回html结构,react vue也有相应的api支持服务端渲染,但是自己去做比较麻烦,我们可以使用比较成熟的服务端渲染框架next.js 。
3.next.js使用安装脚手架
npm install -g create-next-App
生成项目create-next-app myWebsite
安装成功之后会有相应的提示:文章插图
cd myWebsiteyarn dev
浏览器打开localhost:3000,出现以下页面,就表示一个项目启动成功了文章插图
下图是脚手架生成完毕的项目结构图:
文章插图
我们的主页面将在pages下面进行创建开发,每个页面就是一个路由,index.js为主入口,假如我们在pages下创建一个product文件夹,product文件夹下创建一个index.js文件,那么在浏览器中输入localhost:3000/product就能访问到product页面 。
4.具体配置
- 项目中必然涉及组件开发,所以根目录下创建components文件,所有的组件都放在此文件夹下,注意:按照next.js的规则,组件内是不能发送请求的,所有的请求需要放在主页面中 。
- 静态文件放在哪里呢?例如图片,css文件等 。同样在根目录下建立static文件夹,可以在static文件夹下建立images或者css等文件
- 项目的UI框架我们选用antd, 使用npm install antd 或者yarn add antd安装antd 。安装完毕之后需要配置antd按需加载,这个时候,需要在根目录创建.babelrc文件,在此文件中,加入以下代码:
{ "presets": ["next/babel"], "plugins": [ [ "import", { "libraryName": "antd", "style": "less" } ], [ "@babel/plugin-proposal-decorators", { "legacy": true } ] ] }
- 我们想在项目中使用css的同时也使用less文件,该怎么做呢?在根目录下建立next.config.js文件,在此文件中加入以下代码:
const withCss = require("@zeit/next-css");const widthLess = require('@zeit/next-less');if (typeof require !== 'undefined') { require.extensions['.css'] = file => { }}module.exports = widthLess(withCss({ lessLoaderOptions: { JAVAscriptEnabled: true, importLoaders: 1, localIdentName: "[local]___[hash:base64:5]", }, distDir: 'build', webpack: (config, { dev }) => { config.module.rules.push( { test: /.(png|jpg|svg|eot|otf|ttf|woff|gif|woff2)$/, use: { loader: "url-loader?limit=8024", options: { name: "[name].[ext]" } } }, { test: [/.eot$/, /.ttf$/, /.svg$/, /.woff$/, /.woff2$/], loader: require.resolve('file-loader'), options: { name: '/static/media/[name].[hash:8].[ext]' } } ) // config.plugins.push(new CleanWebpackPlugin()) return config }}))
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 俄罗斯方块环球旅游记 俄罗斯方块环游记测试服下载
- 使用布隆过滤器用于Python网络爬虫URL去重
- 搞清楚硬盘备份和录像导出区别,高手笔记
- 喝茶必知的八大禁忌,喝茶牢记六大禁忌
- 猫咪可以经常换猫砂吗 猫咪猫砂多久彻底换一次
- 如何恢复微信聊天记录?简单几步,轻松搞定 快速恢复微信聊天记录
- 经典菜谱app使用方法 关于菜谱的app
- 正确使用路由器家庭网络更稳定
- Laravel数据库迁移的那些个小技巧
- 使用 GNU bc 在 Linux Shell 中进行数学运算