• nuxt.js 进行项目重构-准备工作 项目分析


    目标:将一个 使用vue2.0开发的webAPP 的spa项目 使用 nuxt.js 重构成ssr 项目

    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

     最后返回有所不同

    1. import Vue from 'vue'
    2. import VueRouter from 'vue-router'
    3. // 因为本来就是 服务端渲染 预渲染就 不需要了
    4. import Home from "./pages/index";
    5. ...
    6. // 省略导入对应的组件
    7. Vue.use(VueRouter)
    8. const routes = [
    9. {
    10. path:'',
    11. redirect:'/home'
    12. },
    13. ....
    14. // 省略组件与路由对应的 路由表
    15. ]
    16. //解决重复点击报错
    17. const originalPush = VueRouter.prototype.push
    18. VueRouter.prototype.push = function push(location) {
    19. return originalPush.call(this, location).catch(err => err)
    20. }
    21. // 在vue 脚手架中 这样导出
    22. // const router = new VueRouter({
    23. // routes,
    24. // mode:'hash',
    25. // })
    26. // export default router
    27. // nuxt.js 中这样导出
    28. export function createRouter(){
    29. return new VueRouter({
    30. mode:'hash',
    31. routes
    32. })
    33. }

    项目的页面结构如下

    pages 当中是页面组件 此项目有六个主要页面   搜索页面、购物车页面、分类页面、首页、个人中中心、首页

    对应需要的组件 细分成文件夹 储存到 components 文件夹当中   

    Vuex的相关准备

    主要用于跨关系组件的数据传递

    主要有两个模块

    1.购物车相关  在商品详情页将商品添加到购物车 (其实是将数据 存放到vuex中)进入到购物车页面展示这些数据  并且处理回调交互  全选多选 计算个数 结算时提交订单

    2.搜索相关 搜索完成后跳转到 展示页面 中间的数据流经过vuex 掌控

     其他工具的准备

    在原来的cli 中 下载包挂载到 main.js 中 进行引入就算全局挂载 但在nuxt.js 中 没有main.js 入口文件  相关配置需要在 nuxt.config.js 文件当中配置

    CSS

    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
      }
    ],

  • 相关阅读:
    2023USNews美国加州系大学排名
    locust 初识及常用参数
    后端系统开发注意事项
    创建对象在堆区如何分配内存
    CF1473C No More Inversions
    webpack定制化 加载与插件[css加载器、html插件、image打包配置、babel代码兼容、vue加载器及配置]
    pcb - 做钢网时, 最好带上Mark点
    区块链实验室(24) - FISCO网络重构
    portraiture中文版下载切换教程v3.5.6版本
    Web自动化-Windows窗口上传文件
  • 原文地址:https://blog.csdn.net/benlalagang/article/details/127448493