zWingz / my-blog-config

my-blog-config
MIT License
2 stars 0 forks source link

vue后台系统开发实践 #2

Open zWingz opened 6 years ago

zWingz commented 6 years ago

Vue后台系统开发实践

依赖库

搭建流程

  1. webpack-template

  2. createApp.js, createRouter.js, store.js, http.js

    • createaApp.js 多页时候用来配置各个页面相同的vue选项,比如配置api,mixin等等
    • createRouter.js 多页时候用到配置各个页面相同的路由选项,比如配置路由模式,路由钩子等等
    • store.js 配置全局状态管理.state,action,mutation,getter
    • http.js 配置异步请求, 例如: baseRoot, 请求钩子interceptors
  3. utils.js, ConstValue.js, mixin.js, registerComponent.js

    • utils.js 工具类函数
    • ConstValue.js 常量,例如: isProduction, httpRoot(后端地址)
    • mixin.js 混合
    • registerComponent.js 将经常用到的组件在这里引入并注册为全局组件
  4. route.js, app.js

    • route/.js 具体的路由
    • app.js 每个页面的app启动页
  5. page-view&components

    • 页面级内容

后台大致内容

问题分析

组件

建议

  1. 如果对组件进行for命令,必须加上:key,这是官方指定. 但对于原生dom进行for循环时候.其实可以不加:key,或者使用index作为key. 一旦设置了key,只有key得值不一样,会直接销毁重建dom. 那么用index作为key的话,则只会更新dom而不会销毁重建

  2. 任何通过addEventListeners添加的监听事件,销毁时最好使用removeEventListeners给去掉

  3. 如果不需要运行时构建,可以在webpack中指定使用vue.runtime.js, 会剩了几十k体积

  4. sass-loader前再加一层sass-resources-loader可以将一些变量或者方法全局引入,那就不用到处import了.

    {
        loader: 'sass-resources-loader',
        options: {
            resources: [path.resolve(__dirname, '../src/sass/variable.scss')]
        }
    }

安利

Fundebug

EasyMock

Apizza