gpt4 book ai didi

javascript - 如何动态渲染 vue.js 组件?

转载 作者:行者123 更新时间:2023-11-30 15:25:47 25 4
gpt4 key购买 nike

有谁知道动态渲染 vue.js 组件的方法吗?例如,我有一个表格组件,它应该根据 prop 定义呈现不同的按钮:

Vue.component('my_table', {
template: '#my_table',
props: {
data: Array,
columns: Array,
actions: Array
}
});

理想情况下,我的模板将在我的 action 对象的 tmpl 值中定义:

<tbody>
<tr v-for="entry in data">
<td v-for="key in columns">
{{entry[key.field]}}
</td>
<td v-for="action in actions">
{{ action.tmpl }}
</td>
</tr>
</tbody>

这是我的 fiddle :

https://jsfiddle.net/zfya92dh/43/

有人有什么想法吗?

提前致谢!

最佳答案

<component :is="action.tmpl"></component>

这是你的 fiddle revised .

const button1 = Vue.extend({
template:'<button class="btn btn-primary">View</buttton>'
})

const button2 = Vue.extend({
template:'<button class="btn btn-primary" @click="some_method">Delete</buttton>',
methods:{
some_method(){
alert('clicked')
}
}
})

以及相关数据。

 data: {
actions: [
{
name: 'view',
label: 'View Company',
method: 'click',
tmpl: button1
},
{
name: 'delete',
label: 'Delete Company',
method: 'click2',
tmpl: button2
},
],

关于javascript - 如何动态渲染 vue.js 组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43007689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com