Vue服务器渲染Nuxt学习笔记(3)

<template>
 <avatar/>
</template>
<script>
import avatar from '~/components/Avatar'
export default {
  ...
  components: {
    avatar
  }
};
</script>

布局

在 layouts 目录中,default 是默认布局。我们可以修改默认布局也可以新建布局来使用。

在布局文件中 </nuxt> 标签是我们要服务器渲染的区域。

下面我们来创建个布局玩玩。

// layouts/page.vue
<template>
<div>
  <mt-header fixed title="标题2"></mt-header>
  <nuxt/>
</div>
</template>

然后我们来使用布局,在 pages 页面中配置 layout 选项(如果不配置默认就是 default)。

export default {
  ...
  layout: 'page' // 默认是 'default'
};

中间件

所谓中间件,就是在两个页面跳转之间执行的行为。比如我定义一个中间件 add.js

export default function ({ store }) {
  store.commit('increment')
}

然后在 nuxt.config.js 中进行配置:

module.exports = {
 ...
 router: {
  middleware: 'add'
 },
 ...
}

这样,在每次页面跳转的时候都会执行一次中间件方法了。当然,也可以单独定义某个页面的中间件,具体看官网啦~

页面

页面,就是在pages目录下的 *.vue 文件,Nuxt.js 将目录结构配置为 vue-router 路由系统,所以我们可以直接通过文件名来访问到相应页面(先不提特殊路由)。

比如 pages/app.vue 文件就可以通过 http://localhost:3000/app 来进行访问。

注意:页面组件写法与常用 Vue 组件写法相同,但 Nuxt.js 还提供了一些特殊配置项来配置服务器渲染过程中的行为。具体有啥配置请看 页面文档。

路由

路由就是使 pages 目录能够直接访问的原因。Nuxt.js 非常巧妙地使用目录结构和文件名称将 vue-router 的各种用法都涵盖进去了。如动态路由、嵌套路由等。具体可参考文档。也可以看看demo的 pages 目录。

插件

对于前端项目,插件的使用当然是必不可少的。官网上对这方面讲的很清楚。我贴一下 demo 中的用法。这里用的是 mint-ui 库。

// plugins/mint-ui.js
import Vue from 'vue'
import MintUI from 'mint-ui'
import 'mint-ui/lib/style.css'
Vue.use(MintUI)
// nuxt.config.js
module.exports = {
 build: {
  vendor: ['mint-ui']
 },
 plugins: [
  '~plugins/mint-ui'
 ]
}

这样就可以使用第三方库 mint-ui 啦!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/380.html