在vue.js中动态添加组件不工作
Add dynamically components in vue.js not working
我尝试添加动态组件。这个组件设置成props。我没有将组件注册到components:{}
部分,因为我不知道有多少组件和它们的名称将从props发送。我使用ES6语法,其中导入js模块不工作到ready(){}
部分。我的代码:
let Child = Vue.extend({
data() {
return {
msg: 'CHILDREN'
}
},
template: '<div class="c-child">component {{msg}}</div>'
})
let Parent = Vue.extend({
props: {
component: ''
},
data() {
return {
msg: 'PARENT'
}
},
template: '<div class="c-parent">from component- {{msg}}<br><component :is="component"/></div>',
})
// register
Vue.component('parent-component', Parent)
// create a root instance
let vue = new Vue({
el: '#root'
})
.c-parent {
border: 1px solid red;
padding: 10px;
}
.c-child {
border: 1px solid green;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.26/vue.common.js"></script>
<div id="root">
<parent-component :component="Child"></parent-component>
</div>
动态组件不渲染:
<component :is="component"/>
注:此代码适用于jsfiddle - open link
您需要将解释后的组件名称解析为:is=""
组件,并按照以下方式定义它们:
import GroupsGrid from './../../components/groups'
import RolesGrid from './../../components/roles'
import MainTabs from './../../components/main-tabs.vue' // <-- this component will be render other components
data: {
tabs: {
'GroupsGrid': 'groups-grid',
'RolesGrid': 'roles-grid'
}
},
仍然像这样使用
<component :is="tabs.GroupsGrid"></component>
相关文章:
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- 如何让 JavaScript 在 React 组件中工作
- react如何与修改html的javascript ui组件协同工作
- 将数据传回父组件的ReactJS组件无法工作
- React组件onClick处理程序不工作
- Redux - 繁重的工作应该在哪里发生 - 化简器,动作,容器或表示组件
- 如何让两个不相关的 React 组件一起工作
- 是否有一个JavaScript / Jquery组件可以创建一个像Eclipse一样的工作空间
- 了解嵌套组件绑定在 KnockoutJS 上的工作原理
- 无法让 port.emit 和 port.on 在 Firefox 附加组件中工作
- UIKit (getuikit) 滑块组件拒绝工作
- 为什么我的应用程序中的某些组件在IE7中工作,而在IE9中不起作用
- 正在更新不工作的组件ReactJs
- 附加组件生成器:使用端口的多个工作程序
- AngularJS应用程序组件(模块、工厂、控制器)定义的确切工作方式
- 自定义组件ExtJS,而不是工作setValue
- 我如何让我的自定义UI组件与我的自定义Wordpress主题正确工作
- 切换组件不能在跨包指令上工作
- angular组件中的模板没有按预期工作
- React组件拖动不工作,没有错误或控制台日志