zoukankan      html  css  js  c++  java
  • 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")
    })
  • 相关阅读:
    there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
    使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件
    ActiveMQ使用示例之Queue
    JMS基本概念之一
    @ActiveMQ简单介绍以及安装
    Spring中 @Autowired注解与@Resource注解的区别
    classpath: 和classpath*:的区别
    Mybatis整合Spring
    @MyBatis主键返回
    Intellij Idea @Autowired取消提示
  • 原文地址:https://www.cnblogs.com/xiewangfei123/p/14752023.html
Copyright © 2011-2022 走看看