javascript - 动态传值给require加载vue组件?
巴扎黑
巴扎黑 2017-04-11 13:20:22
[JavaScript讨论组]

Vue.component(name, function (resolve) {
require([path], resolve)
})

name path都是传入的值 然后动态注册模块
但require是被强制静态化的导致path传了无效

问高人说用异步组件,去加载。
无奈技术有限 无入手方向或头绪
请给位指点 一二 或是贴码 更好
多谢各位

巴扎黑
巴扎黑

全部回复(1)
ringa_lee

首先列出参考:

  1. Vue异步组件

  2. Webpack Dynamic Require

  3. Webpack Code Spliting

然后用vue-cli的webpack-simple template写了个简单的demo:
仅仅是将App.vue丢到了src/component下面(目的是为了体现webpack的context解析),然后修改import的方式为dynamic require。
其实要动态require大概的意思就是要告诉webpack上下文,不然webpack在编译时并不知道这个module是什么(因为是个变量)。

main.js

import Vue from 'vue'
// import App from './App.vue'

const name = 'App.vue'

const App = (resolve) => {
    require.ensure([], (require) => {
        resolve(require.context('./component', false, /\.vue$/)(`./${name}`));
    }, 'app');
};

new Vue({
  el: '#app',
  render: h => h(App)
})
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号