vue路由自动加载、按组件异步载入vuex以及dll优化

一、vue路由自动加载
介绍:

使用统一规则命名路由文件名,通过webpack方法require.context方法对文件进行读取,动态生成路由数据

核心代码:

//param(路径,是否遍历子文件夹内文件,匹配文件正则)
let r = require.context('./pages',true,/.vue/)
r.keys()//返回遍历的文件路径数组
r(key).default//路由文件输出内容

二、按组件异步载入vuex
介绍:

按module划分store,在组建中定义白能量标记是否需要vuex管理状态。
使用vue插件方式,在插件中使用Vue.mixin方法全局注入组件
在beforeCreate钩子中判断变量,动态引入并注册(store.registerModule)store

核心代码:

var vuexState = {
    install (vue){
        vue.mixin({
            beforeCreate:function(){
                if(this.$options.isVuex){
                    let name = this.$options.name
                    import("../store/module/"+name).then((res)=>{
                        this.$store.registerModule(name,res.default)//注册模块名称、注册store
                    })
                }
            }
        })
    }
}
export default vuexState

三、dll打包优化
介绍:

使用webpack.DllPlugin将第三方包进行预处理
使用webpack.DllReferencePlugin在正式打包时配置不需要处理的第三方包

核心代码:

const path = require('path')
const webpack = require('webpack')
module.exports = {
    entry:{
        vendor:['vue/dist/vue.esm.js','vue-router']
    },
    output:{
        path:path.join(__dirname,'./static/js'),
        filename:'[name].dll.js',
        library:'[name]_library'
    },
    plugins:[
        new webpack.DllPlugin({
            path:path.join(__dirname,'.','[name]-manifest.json'),
            name:'[name]_library'
        })
    ]
}

webpack.prod.conf.js

webpack.DllReferencePlugin({
  contet:path.join(__dirname,"..")
  manifest:require("./vendor-manifest.json")
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

X W F

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值