【发布时间】:2018-09-07 03:58:14
【问题描述】:
如何从我的SectionComponent.vue 文件中获取已导入组件的实例?
import ButtonComponent from './ButtonComponent.vue';
要获得它的一个实例,我想做这样的事情:
buttonComponent = Vue.component(ButtonComponent);
我的组件在我的组件数组中列出/定义为ButtonComponent 所以理论上我应该可以说:
let buttonComponent = Vue.component('button-component');
但这给了我不确定性。什么给了?
如果我全局注册它然后获取一个实例,它确实有效。
难道挂载的地方不适合测试这段代码吗?我的安装方法是在导入之前触发的吗?我只是在这里寻找一点清晰度,如果有人可以解释我将不胜感激!
【问题讨论】:
-
你真的想在你的 SectionComponent 模板中渲染 ButtonComponent 吗?
-
是的,我希望能够将按钮动态添加到部分组件。
-
您可以通过标签在模板中使用
ButtonComponent:<button-component/>。您可以使用v-if有条件地显示按钮,或使用v-for显示按钮数组。 -
基本上,您正在以一种非常非 Vue 的方式考虑这个问题。使用 Vue,您不必强制向 DOM 添加内容。相反,您根据数据的状态描述 DOM 在模板中的外观,而 Vue 会为您处理所有 DOM 操作。
-
@Bert 谢谢你,这确实有帮助。而不是向我的部分组件添加按钮。我已经有一个按钮,当发生一些动作时我会显示这个按钮。根据该动作发生的次数,我可以跟踪并显示多个按钮。这一切都是基于数据变化而不是添加新的组件实例而发生的。因为 Vue 已经为我做到了这一点?
标签: javascript vue.js ecmascript-6