要实现的功能:通过服务器读取数据库内设置信息,前台根据信息动态组成需要的vue组件,这些组件有不同的props、事件等,当组件变化是,如何动态设置props和事件?
要实现的功能:通过服务器读取数据库内设置信息,前台根据信息动态组成需要的vue组件,这些组件有不同的props、事件等,当组件变化是,如何动态设置props和事件?
//html 部分
<!-- 父组件模板-->
<div id = "page">
<keep-alive>
<component :is="组件名" :参数1="参数1" :参数2="参数2"></component>
</keep-alive>
</div>
<!-- 组件1模板-->
<script type="text/x-template" id="组件1">
<div>.....</div>
<script>
<!-- 组件2模板-->
<script type="text/x-template" id="组件2">
<div>.....</div>
<script>
//js 部分
//组件1实例
Vue.component('组件1', {
template: '#组件1',
props: {
参数1: Number,
参数2: Object
},
data: function() {
return {
a: ''
};
},
methods: {}
})
//组件2实例
Vue.component('组件2', {
template: '#组件2',
props: {
参数1: Number,
参数2: Object
},
data: function() {
return {
a: ''
};
},
methods: {}
})
//父组件实例
new Vue({
el: '#page',
data: {
组件名: '组件1', //动态更换,(由事件触发等)
a:123
},
methods: {
//改变 this.组件名
}
})
6 回答2.9k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
2 回答2k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
4 回答2.6k 阅读
2 回答975 阅读✓ 已解决
刚好这两天遇到同样的问题,仔细查了一下文档发现 动态组件 和 传入一个对象的所有属性 这两个点应该可以解决你的问题,关键代码实现如下
整体思路就是:
通过动态变量的方式将,props通过对象的方式传递过去,每个对象里只传递组件对应所需要的属性