У меня динамическое представление:
<div id="myview">
<div :is="currentComponent"></div>
</div>
со связанным экземпляром Vue:
new Vue ({
data: function () {
return {
currentComponent: 'myComponent',
}
},
}).$mount('#myview');
Это позволяет мне динамически изменять свой компонент.
В моем случае, у меня есть три различных компонента: myComponent
, myComponent1
и myComponent2
. И переключаюсь между ними вот так:
Vue.component('myComponent', {
template: "<button @click=\"$parent.currentComponent = 'myComponent1'\"></button>"
}
Теперь я хотел бы передать реквизит myComponent1
.
Как я могу передать эти реквизиты, когда я изменил тип компонента на myComponent1
?
javascript
vue.js
vuejs2
vue-component
Эпитуй
источник
источник
propName="propValue"
. Это твой вопрос?<myComponent1 propName="propValue">
я программно меняю компонент с помощью$parent.currentComponent = componentName
<div :is="currentComponent"></div>
. Вот где вы должны добавить атрибут.myComponent1
возьмите реквизит иmyComponent2
не возьмите реквизитОтветы:
Чтобы передать свойства динамически, вы можете добавить
v-bind
директиву в свой динамический компонент и передать объект, содержащий имена и значения ваших свойств:Итак, ваш динамический компонент будет выглядеть так:
А в вашем экземпляре Vue
currentProperties
может меняться в зависимости от текущего компонента:Итак, теперь, когда
currentComponent
естьmyComponent
, у него будетfoo
свойство, равное'bar'
. А когда это не так, никакие свойства не передаются.источник
<component>(here)</component>
. Это возможно?<slot>
по умолчанию для каждого компонента, который вы динамически визуализируете. vuejs.org/v2/guide/components-slots.htmlВы также можете обойтись без вычисляемого свойства и встроить объект.
<div v-bind="{ id: someProp, 'other-attr': otherProp }"></div>
Показано в документации по V-Bind - https://vuejs.org/v2/api/#v-bind
источник
Вы могли бы построить это как ...
источник
Если вы импортировали код через require
вы также можете ссылаться на компонент через свойство name, если он назначен вашему компоненту
источник