nuxt的安装 和目录结构上文已经有提到
![]() | .nuxt:执行时依赖的文件 执行npm run start 或者 npm run dev时会生成 assers: 静态资源 存放 css img等 components 存放组件的文件夹 layouts 布局目录 类似 app.vue middleware 中间件 类似导航守卫 node_modules 项目依赖的包 pages 页面组件的文件夹 store 状态树的文件夹(VueX) nuxt.config.js 类似 main.js |
nuxt.js 会根据 pages文件夹内的组件名称 自动生成路由
在进行项目重构时 直接使用原有 cli 当中的文件 步骤如下:
1.下载
npm install @nuxtjs/router -s
2.在nuxt.config.js 中增加配置
modules: [ '@nuxtjs/router', ],
3.把cli 中的router 文件拷贝到nuxt项目的根目录中(与nuxt.config.js 平级) 名字为 router.js

最后返回有所不同
- import Vue from 'vue'
- import VueRouter from 'vue-router'
- // 因为本来就是 服务端渲染 预渲染就 不需要了
- import Home from "./pages/index";
- ...
- // 省略导入对应的组件
-
- Vue.use(VueRouter)
-
- const routes = [
- {
- path:'',
- redirect:'/home'
- },
- ....
- // 省略组件与路由对应的 路由表
- ]
-
-
-
-
- //解决重复点击报错
- const originalPush = VueRouter.prototype.push
-
- VueRouter.prototype.push = function push(location) {
- return originalPush.call(this, location).catch(err => err)
- }
-
-
-
- // 在vue 脚手架中 这样导出
- // const router = new VueRouter({
- // routes,
- // mode:'hash',
- // })
- // export default router
-
- // nuxt.js 中这样导出
- export function createRouter(){
- return new VueRouter({
- mode:'hash',
- routes
- })
- }

pages 当中是页面组件 此项目有六个主要页面 搜索页面、购物车页面、分类页面、首页、个人中中心、首页
对应需要的组件 细分成文件夹 储存到 components 文件夹当中
主要用于跨关系组件的数据传递
主要有两个模块
1.购物车相关 在商品详情页将商品添加到购物车 (其实是将数据 存放到vuex中)进入到购物车页面展示这些数据 并且处理回调交互 全选多选 计算个数 结算时提交订单
2.搜索相关 搜索完成后跳转到 展示页面 中间的数据流经过vuex 掌控

在原来的cli 中 下载包挂载到 main.js 中 进行引入就算全局挂载 但在nuxt.js 中 没有main.js 入口文件 相关配置需要在 nuxt.config.js 文件当中配置
css: [ '~assets/css/normal.css', 'element-ui/lib/theme-chalk/index.css', 'swiper/dist/css/swiper.css' ],
plugin
需要使用的插件 新建 plugin 文件夹 里面配置好相关插件的使用 再在 nuxt.config.js中使用

plugins: [
'@/plugins/element-ui',
{
src:'@/plugins/swiper',
// ssr:false
},
'@plugins/bus',
'@plugins/better-scroll',
{
src: '@/plugins/localStorage',
ssr:false
}
],