构建项目中合理利用require.context进行优化
自定义组件批量全局加载
也是常见的可以使用该方法的地方
1 | import Vue from 'vue' |
vuex中当store分module之后的加载
一般情况下结构是
1 | |-- store |
那么在index.js中导入是这样
1 | import Vue from 'vue' |
如果使用require.context
1 | import Vue from 'vue' |
这种引入的方式,推荐开启Vuex的命名空间(namespace: true),另外需要注意的是
- 强烈建议使用mapSates, mapActions这种方使来调用。因为开了命名空间。
所以可以指定加载某个store.
eg:1
2import { createNamespacedHelpers } from 'vuex'
const { mapState, mapMutations, mapActions } = createNamespacedHelpers('app') // 参数为require.context加载时候的name - 还有一个点需要注意的是在创建vue实例是,即在main.js中new Vue的时候要加载一个启动项,而这个启动项需要调用到store的时候
是需要处理下的。
代码
main.js
1 | import bootstrap from './utils/bootstrap' |
bootstrap.js
比如我在此时初始化路由
1 | import { createNamespacedHelpers } from 'vuex' |
在这里面store中app.js里的内容
1 | import routes from '../../router/routes' |
api请求模块
- 在项目较大时,可能会有多个模块有多个请求,同理也可以使用require.context来处理
http/modules/test.js
1 | import axios from 'axios' |
http/index.js
1 | import Vue from 'vue' |
src/main.js
这里可以抽成Vue Plugin的插件的形式。这里简单处理,直接绑定在原型上了
1 | import Vue from 'vue' |
那么在调用的时候可以使用
1 | methods: { |
—- end
- Post link: https://yuexiaoya.com/2020/04/09/frontend/vue/webpack%E7%9A%84require-context%E7%9A%84%E8%BF%90%E7%94%A8/
- Copyright Notice: All articles in this blog are licensed under unless otherwise stated.