Nuxt.js开发笔记
Nuxt.js是基于vue的一个全栈(这里全栈的意思是支持CSR和SSR)开发框架或者说开发套件,支持SSR(服务端渲染)、SSG(静态站点生成)、SPA(单页面应用),它提供了vue不提供的路由、缓存、接口服务、SSR,并对开发场景做了大量优化,开箱即用。
初始化项目
1 | npx create-nuxt-app my-app |
FileBased(文件即路由)
只需要在pages下创建vue文件,即可访问,Nuxt.js会自动根据文件名注册路由。还支持路由嵌套、路由参数。
SSR
vue项目都是在客户端渲染的,导致我们的页面不能完整的被搜索引擎爬取收录,这个时候就可以搭建服务端渲染(SSR)来解决这个问题。
SEO
在Nuxt.js中实现SEO只需要使用Nuxt.js提供的SEO接口:
1 | <template> |
服务端渲染接口数据
$fetch
Nuxt.js内置了$fetch
,可以代替axios。
useAsyncData
useAsyncData
是用于获取接口数据的方法,需要结合$fetch
使用。
1 | <template> |
如果对于获取的数据不需要处理,则无需监听可以在获取到data后直接渲染到页面上。
这样就可以像CSR一样使用data来渲染页面了。
此时接口的数据是在服务端完成的渲染,这样对于SEO友好,并且可以解决首屏加载慢的问题,因为页面都已经在服务端渲染好了。
useFetch
useFetch
是useAsyncData的语法糖,它不需要传入id。
1 | <template> |
useLazyFetch
useLazyFetch
是lazy为true的useFetch。
服务端接口
Nuxt.js还可以写自己的服务端接口。
比如在server目录下创建api目录,目录下创建接口文件,可以直接读取数据库。实现了一个真实的api接口。
组件自动导入
Nuxt.js中如果要使用一个组件,不需要再导入这个组件了,可以直接使用。
中间件
Nuxt.js可以使用中间件(middleware)来实现比如鉴权等功能。
创建中间件
在具体页面组件中使用中间件。
1 | <template> |
除了这些之外,Nuxt.js还支持页面渲染配置、过渡动画、状态管理、单元测试等等,以及社区资源。