之前发过一篇利用vue、express和mongodb搭建个人网站的文章 github.com/yunlzhang/l… 网站地址:lcddjm.com没有使用ssr(服务器渲染),用户体验不好,不利于seo
于是我将之前的代码整理了一下,结合nuxt.js重写了一份ssr的代码 网站地址:ssr.lcddjm.com
代码重构过程中,做了以下一些调整:
- 将之前一些耦合比较高的代码抽离出来,封装成独立的组件,放在components目录下
- 原来使用locastorage来管理登录信息,现使用vuex来管理
- 接口单独部署,采用cors方式解决跨域问题
Nuxt.js 是一个基于 Vue.js 的通用应用框架,它预设了利用Vue.js开发服务端渲染的应用所需要的各种配置
使用Nuxt,你不需要再去写路由逻辑,Nuxt.js 依据 pages 目录结构自动生成 vue-router 模块的路由配置。
例如我的page目录结构:
它会自动生成路由配置:
router: {
routes: [
{
name: 'index',
path: '/',
component: 'pages/index.vue'
},
{
name: 'license',
path: '/license',
component: 'pages/license.vue'
},
{
name: 'signin',
path: '/signin',
component: 'pages/singin.vue'
},{
name: 'signup',
path: '/signup',
component: 'pages/singup.vue'
},{
name: 'artilce',
path: '/article/:id',
component: 'pages/article/_id.vue'
},
......
]
}
具体参考:zh.nuxtjs.org/guide/routi…
nuxt内置了webpack打包工具,若想要修改配置,需要在nuxt.config.js中进行具体的修改
参考:https://zh.nuxtjs.org/guide/configuration
本项目代码仓库:github.com/yunlzhang/l…
不足之处请大家多多指教。
ps:在打包发布的过程中,我发现一个问题,打包后的vendor文件特别大,element-ui我是通过按需引用方式加载,但仍然在vendor中占很大部分。如何去拆分vendor文件,请大家给一点建议