vue2.0动态添加组件
2017-12-14 11:54
711 查看
方法一、 <template> <inputtype="text"v-model='componentName'> <button@click='add'>clickmetoaddacomponent</button> </template> <script> //引入要添加的所有组件 importcomponent1from'./components/component1.vue' importcomponent2from'./components/component2.vue' exportdefault{ data:function(){ return{ allComponents:[], componentName:'' } }, components:{ //注册所有组件 component1, component2 } methods:{ add:function(){ this.allComponents.push(this.componentName) //重置输入框 this.componentName='' }, render:function(h){//h为createElement函数,接受三个参数 //tag //data //children具体看文档吧 returnh('div',this.allComponents.map(function(componentName){ returnh(componentName) })) } } } </script>
方法二、
html
<divid="app"> <button@click="add('a-component','test')">AddA</button> <button@click="add('b-component','test')">AddB</button> <ul> <li:is="item.component":text="item.text"v-for="iteminitems"></li> </ul> </div>
javascript
varAComponent=Vue.extend({ props:['text'], template:'<li>AComponent:{{text}}</li>' }) varBComponent=Vue.extend({ props:['text'], template:'<li>BComponent:{{text}}</li>' }) newVue({ el:'#app', components:{ 'a-component':AComponent, 'b-component':BComponent, }, data:{ items:[] }, methods:{ add(component,text){ this.items.push({ 'component':component, 'text':text, }) } } })
方法三、
我是写在父组件中的:
Vue.component('mycontent',{ props:['content'], data(){ return{ coms:[], } }, render:function(h){ this.coms=[]; for(vari=0;i<this.content.length;i++){ this.coms.push(h(this.content[i],{})) } returnh('div',{}, this.coms) }, });
调用的时候
<mycontentv-bind:content="content"></mycontent>
那么父组件中的content变化时,就会动态加载组件了
相关文章推荐
- 详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
- [置顶] VUE2.0增删改查附编辑添加model(弹框)组件共用
- 在Vue组件上动态添加和删除属性方法
- vue-router2.0 组件之间传参及获取动态参数的方法
- 详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
- vue2.0使用动态组件实现tab切换效果(vue-cli)
- vue-router2.0 组件之间传参及获取动态参数
- vue-router2.0 组件之间传参及获取动态参数
- Vue 2.0 动态组件
- 在Vue组件上动态添加和删除属性
- vue2.0动态组件及render
- VUE2.0增删改查附编辑添加model(弹框)组件共用
- vue-router2.0 组件之间传参及获取动态参数
- VUE2.0增删改查附编辑添加model(弹框)组件共用
- vue中动态添加class类名
- Ext如何动态添加一行组件
- [js高手之路]Vue2.0基于vue-cli+webpack同级组件之间的通信教程
- vue2.0组件入门
- Ⅳ vue2.0 项目中的组件