首先来讲一下服务端渲染
直白的说就是在服务端拿数据进行解析渲染,直接生成html片段返回给前端。具体用法也有很多种比如:
传统的服务端模板引擎渲染整个页面
服务渲染生成htmll代码块, 前端 AJAX 获取然后js动态添加
服务端渲染的优劣
首先是seo问题,前端动态渲染的内容是不能被抓取到的,而使用服务端渲染就可以解决这个问题。还有就是首屏加载过慢这种问题,比如在SPA中,打开首页需要初始加载很多资源,这时考虑在首屏使用服务端渲染,也是一种折中的优化方案。但是使用SSR时,势必会增加服务器的压力,还有可能会需要前后端同构,使用同样的模板引擎,这似乎与前后端分离的观点又是矛盾的。废话就说到这里,下面来看一下vue框架中的服务器渲染。
安装官网有详细介绍
https://zh.nuxtjs.org/
Nuxt.js工作流
Nuxt.js基础
一、nuxt路由
官网对于项目的目录结构有详细介绍可以看看。
对于路由:项目下的pages 文件夹就是路由,默认的是pages 下边的 index 文件也就是 / 。需要新的路由就建立新的 vue 文件就行,如果是文件夹=>.vue文件,那么路由前边就加一个文件夹名。
二、nuxt页面模板。
项目目录下边会有是那个文件,分别是:pages、components、layouts三个文件夹,这三个文件夹有什么区别呢?
components: 这里是真正的组件的地方
pages: 路由的页面。需要模板
layoutss: 模板页面。
分析:例如电商网站,首页、列表页、详情页、登录、注册。前三个页面的头部底部一样只是中间数据不一样,而登录注册的头部一样,底部是5个公用。那么就相当于有两个膜版页面。头部、底部可以当成组件放在 components 里面。模板页面用登录做例子:
layouts文件夹下,建立 login.vue 的模板页面
components 下边建立 头部 底部组件。
pages添加 login.vue 文件:也就是login 这个页面以及路由。layouts 里面的 Nuxt 边会在访问的时候加载 这个 vue页面
这样 路由 模板 就结束了。