一、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") })
热门文章
- 「2月15日」最高速度21.4M/S,2025年SSR/Shadowrocket/V2ray/Clash每天更新免费订阅地址分享
- 室内萌宠乐园加盟(室内萌宠乐园加盟有做法吗)
- 普通狗粮多少钱一斤(狗粮多少钱一斤算好)
- 「3月4日」最高速度22.1M/S,2025年Clash/SSR/V2ray/Shadowrocket每天更新免费订阅地址分享
- 「1月12日」最高速度18.6M/S,2025年V2ray/SSR/Shadowrocket/Clash每天更新免费订阅地址分享
- 「1月26日」最高速度21.4M/S,2025年V2ray/SSR/Shadowrocket/Clash每天更新免费订阅地址分享
- 「1月15日」最高速度22M/S,2025年V2ray/Clash/SSR/Shadowrocket每天更新免费订阅地址分享
- 动物疫苗证明哪里开的啊(动物疫苗证去哪里办怎么办)
- 「2月9日」最高速度18.6M/S,2025年SSR/Clash/Shadowrocket/V2ray每天更新免费订阅地址分享
- React+ts 中定义事件声明类型