nuxt.js和vue.js
nuxt.js是基于 Vue.js 创建的服务端渲染(ssr)应用框架。
一般使用nuxt.js多是用来解决seo的问题。
nuxt.js与vue.js的区别有:
路由:
nuxt.js是按照pages文件夹的目录结构来自动生成路由。
vue.js则是需要在router/index.js中手动配置路由。
入口页面:
nuxt.js的入口页面是layout/default.vue。
vue.js的入口页面为src/App.vue。
pack配置
nuxt内置webpack,允许根据服务端需求,在 nuxt.config.js 中的build属性自定义构建webpack的配置,覆盖默认配置。
vue关于webpack的配置存放在build文件夹下。
nuxt.js不一定一直运行在客户端(存储方面建议cookie),vue.js则是一直运行于客户端。
nuxt.js相比于vue.js优点在于 便于seo 和 更利于首屏加载。
生命周期:
nuxt.js对于vue.js的生命周期函数进行了一部分拓展。新增了
middleware(){}, // 服务端
validate() {}, // 服务端
asyncData() {}, // 服务端
fetch() {}, // store数据加载
beforeCreate() {}, // 服务端和客户端都会执行
created() {}, // 服务端和客户端都会执行
vue.js的生命周期钩子中只有beforeCreate(){}和created(){}会在浏览器和服务端均被调用,其他只有在浏览器端被调用
nuxt.js内置webpack,
路由:
nuxt根据pages目录结构生成路由配置,异步数据asyncData,必须要页面组件才能调用asyncData,asyncData传入context参数,可以获取一些信息
export default {
asyncData(ctx){
ctx.app // 根实例
ctx.route // 路由实例
ctx.params // 路由参数
ctx.query // 路由问号后的参数
ctx.error // 错误处理方法
}
}
使用这个方法时要注意,如果由于服务器或api错误导致无法渲染,就要做好容错机制,可以使用context.error方法
async asyncData(ctx){
try {
throw new Error()
} catch {
ctx.error( {statusCode: 500, message: '服务器开小差了~'} ) // 这里的statusCode参数必须是http状态码
}
}
此时,错误页可以通过/layout/error.vue自定义
middleware()
在特定页面实战中间件使用axios请求数据
nuxt默认安装axios,所以只要安装proxy即可
npm install @nuxtjs/proxy
安装之后需要在nuxt.config.js中配置
export default { modules: [ '@nuxtjs/axios', '@nuxtjs/proxy' ], proxy: { './api': { target: 'http://www.xxx.com', changeOrigin: true, pathRewrite: { '^/api': '' } } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)