猿问

如何使用VUE动态的对异步组件进行加载?

需求是首先通过一个异步的方式获取一个组件名称的列表,然后根据这个列表(字符串数组形式)加载这个列表上的组件,然后循环显示在页面上
我先照着vue官网上的搞了一个,我现在可以将组件异步加载,但是我不知道该如何进行下去了
接vv13的回答:上边的例子是我现在写的样子,容易误导人,我换一种需求的例子目前需求里示例中的Link1、Link2等组件不一定存在,全是从另一个接口中获取的组件列表例如:
万千封印
浏览 656回答 2
2回答

忽然笑

已经解决了:exportdefault{name:'menu',data(){return{plugs:[]}},created(){fetch('../assets/plugs.json').then((data)=>data.text()).then((data)=>{data.plugs.forEach(item=>{this.plugs.push(()=>import(`@/plugs/${item}`))})})}}

Cats萌萌

Vue的异步组件实践有两种,第一种是路由懒加载将应用由路由层分为多个chunk,减小单个入口的打包体积。还有一种就是在Tab页、弹窗等不需要立即展示的都可以使用异步组件进行加载,就拿你的demo来讲:exportdefault{name:'Menu',components:{Link1:()=>import(`../plugs/Link1`),Link2:()=>import(`../plugs/Link2`),},data(){return{plugs:[],currentLink:'Link1'}},}首先加载两个动态组件Link1和Link2,通过data中的currentLink来指定动态组件的名称,这样就可以动态的加载组件。
随时随地看视频慕课网APP

相关分类

Vue.js
我要回答