使用Nuxt重构已有Vue项目(Axios默认根域名、切换Vuetify字体、配置Mavon编辑器和常见异常解决localStorage/window/document is not defined)

本文详细记录了使用Nuxt重构Vue项目的过程,包括Nuxt的基础概念、安装、改造步骤,特别是如何配置全局Axios默认根域名,切换Vuetify字体,解决localStorage/window/document未定义的异常。通过Nuxt实现SEO优化,提高网站流量。
摘要由CSDN通过智能技术生成

近日用Vue写了个小项目 但由于Vue的特性 导致项目的SEO并不是很好
因此用Nuxt重构了该项目 对项目进行了一次优化
由于之前并没有相关的经验 因此遇到不少的坑 特此记录一下

一、概念

什么是Nuxt

Nuxt.js是Vue.js的通用框架 常用来作服务器端渲染(Server Side Rendering 简称SSR)

Vue适合用于开发SPA单页面应用 但因其数据绑定特性 导致爬虫只能爬取页面模板 并不能爬到渲染好的数据 不利于网站排名

对于公司内部网站等不需要排名的网站 可以不用SEO
但对于那些博客或新闻网之类的网站 SEO可谓是至关重要 这直接关系到网站的流量

二、安装

关于Nuxt的安装 这里就不多赘述了 请参看我的另一篇博客:Nuxt的介绍及简单安装(vue-cli4.x)
Nuxt是开箱即用的模块化安装 安装是傻瓜式的 非常方便

三、改造

这是Vue项目的目录结构:
在这里插入图片描述
这是Nuxt项目的目录结构:
在这里插入图片描述
可以看出 Vue和Nuxt的项目目录是很相似的 因此可以很方便地对文件进行移植
关于Nuxt的目录结构的对应含义 我在此前的博客中已经有了相关的解答:Nuxt的目录结构和常用配置

那么 接下来就是愉快的移植了:

  • 【★】 Vue项目下的assets是静态文件 可以放入Nuxt项目下的static目录下
  • 【★】 Vue项目下的components是组件 直接放入Nuxt项目下的同名目录components
  • 【★】 Nuxt项目下的layouts是布局文件 其中默认生成的default.vue是页面模板 相当于Vue项目下的App.vue
    里面有个<nuxt />代表了你的页面内容 相当于Vue的<router-view/> 在其上加上tabbar 在其下加上footer即可实现页面自定义页面模板
    error.vue是错误页面 这些都可以自己进行定制
  • 【★】 Vue项目的路由配置router/index.js就不需要了 因为Nuxt会自动生成 不过需要遵循Nuxt的相应的规则Nuxt的路由(普通路由、动态路由、参数校验)和路由动画
  • 【★】 Vue项目的插件放在Nuxt项目的plugins目录下 给每个插件定义一个js文件进行配置
    例如过滤器 在plugins下定义一个filter.js即可:
import Vue from 'vue'
import Moment from 'moment'
Vue.filter('dateFormat',function(value,format='YYYY-MM-DD HH:mm:ss'){
   
    return Moment(value).format(format)
})

然后在nuxt.config.js里进行配置
忘了说了:nuxt.config.js是Nuxt项目的总配置文件 插件要在里面的plugins里导入才会生效
就比如刚才的过滤器:

plugins: [
    "~/plugins/filter.js",
  ],

(~和@是Nuxt的语法 都能表示项目的根目录)

  • 【★】 Vue项目下的store是Vuex的配置文件 直接放于Nuxt项目的同名store目录下 但有少许不同:
    在Vue项目下的store/index.js是这样的:
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值