本文采用nuxt进行服务端渲染https://zh.nuxtjs.org/
安装 nuxt.js
$ vue init nuxt-community/starter-template <你项目的名字>
// 后面 安装依赖你懂的
// 安装koa版本
$ vue init nuxt/koa <你的项目名字>
运行
npm run dev
应用现在运行在 http://localhost:3000
注意:Nuxt.js 会监听 pages 目录中的文件变更并自动重启, 当添加新页面时没有必要手工重启应用。
路由
nuxt 是根据pages 目录结构生成路由配置
异步数据asyncData
注意必须要页面组件才能调用asyncData(就是components下是不能调用,必须路由的页面才行)
异步数据beforeCreate,created
注意:在任何vue组件的生命周期内,只有beforeCreate和created这两个钩子会在浏览器端和服务端均被调用;其他的钩子都只会在浏览器端调用。
使用插件mint-ui
- 首先我们需要在plugins文件夹中添加插件文件 mint-ui.js
import Vue from "vue";
import Mint from "mint-ui";
Vue.use(Mint);
- 在nuxt.config.js中配置plugins字段
/**
* 配置第三方插件
*/
plugins: [{ src: "~plugins/mint-ui", ssr: true }],
//同时nuxt还支持区分只在浏览器中运行和只在服务端运行的插件
//只在浏览器运行:配置nuxt.config.js中plugins字段,将引入的插件属性设置为ssr: false
//只在服务端运行:直接在webpack打包server.bundle.js文件中,将process.SERVER_BUILD设置为true即可
layout布局
1.nuxt.js实现了一个新的概念,layout布局,我们可以通过layout布 局方便的实现页面的多个布局之间方便的切换。本项目中实现了三种常用的布局,即:1)两栏布局,左栏固定,右栏动态宽度;2、错误页提示,页面中间一个提示框的布局方案;3、纯白页面布局。
- 具体开发的页面中,如果使用默认布局,则不需指定页面的布局,nuxt框架会自动对没有指定布局的页面和default布局进行关联。如果需要指定布局,则在layout字段中对布局进行指定。如图在login页面中对full布局进行了指定。