我想将一个组件(比如说组件B)作为道具传递给另一个组件(我们称其为组件A),并在Vue.js中在组件A内显示组件B:
html:
<compA title="Title By Mazoo" content={compB}></compA>
js:
Vue.component('compA', {
template: '<div>{{content}}</div> ',
props: {
content: ''
}
});
Vue.component('compB', {
template: '<div> Various html tags</div> ',
});
我知道上面的代码是错误的,在React中,我可以很容易地做到这一点:
<compA title="My title" content={<compB />} />
class compA extends React.Component {
render() {
return (
<div>
{this.props.content}
</div>
);
}
}
class compB extends React.Component {
render() {
return (
<div>
Lots of HTML tags, etc
</div>
);
}
}
答案 0 :(得分:2)
您似乎需要slots
。在compA
中定义一个广告位,然后将compB
作为compA
的子元素:
Vue.component('compA', {
template: '<div><slot></slot></div> '
});
Vue.component('compB', {
template: '<div> Various html tags</div>',
});
在您的模板中:
<div id="app">
<comp-a><comp-b></comp-b></comp-a>
</div>