公司的官网用了nuxt来进行服务端渲染(ssr),于是来篇文章来简单介绍下nuxt。
nuxt是基于Vue的服务端渲染框架,正如官网说的,框架最关心的是UI渲染。
1.ssr原理
以前浏览器获取数据都是后端渲染,就是浏览器请求后,后端通过处理渲染最终的.html文件给浏览器。随着js和ajax的兴起,前端渲染增多。Node的出现,可以将渲染工作放在node服务端,服务端直接将html字符串返回给浏览器。
服务端的渲染主要有利于SEO和首屏渲染快两大好处。
2.Nuxt的使用
首先,先全局安装好create-nuxt-app
npm install -g create-nuxt-app
然后新建一个nuxt项目
create-nuxt-app <项目名称>
安装好官网的脚手架,我们就可以愉快的进行nuxt开发了!
在layouts
文件夹中可以添加我们整个项目的布局,我的实际项目中头部和根部是通用的,通过布局可以快速实现组件的复用。
<template>
<div id="app">
<Header />
<nuxt />
<Footer />
</div>
</template>
components
文件夹跟vue项目中的一样,我们可以在里面创建我们需要的组件。
store
文件夹就是vuex了,这里保存了我们所需要的状态。
pages
是我们项目页面部分,也是我们开发项目的重点。对于一个页面,异步获取数据我们使用asyncData
这个API,它在路由跳转前会请求处理好我们需要的数据,一开始不会用,发现数据展示不出来,它有两种用法:
aysnc aysncData() {
let link = await axios.get('/getLink');
return {
data: link.data
}
}
// ES6的async、await语法,返回一个对象
aysncData() {
return axios.get('/getLink').then(res => {
return { data: res.data };
})
}
// 返回一个promise
我们常用第一种方法,代码更加直观简介。
请求好数据后,就会渲染到我们的html模板上,实现数据的更新。
还有很多配置项,我们可以根据官网和需求进行配置。