Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从组件内部获取Vue组件的实例_Javascript_Vue.js_Ecmascript 6 - Fatal编程技术网

Javascript 如何从组件内部获取Vue组件的实例

Javascript 如何从组件内部获取Vue组件的实例,javascript,vue.js,ecmascript-6,Javascript,Vue.js,Ecmascript 6,如何从我的SectionComponent.vue文件中获取已导入组件的实例 import ButtonComponent from './ButtonComponent.vue'; 为了获得一个实例,我想做如下操作: buttonComponent = Vue.component(ButtonComponent); 我的组件在我的组件数组中列出/定义为ButtonComponent,因此理论上我应该能够说: let buttonComponent = Vue.component('but

如何从我的
SectionComponent.vue
文件中获取已导入组件的实例

import ButtonComponent from './ButtonComponent.vue'; 
为了获得一个实例,我想做如下操作:

buttonComponent = Vue.component(ButtonComponent);
我的组件在我的组件数组中列出/定义为
ButtonComponent
,因此理论上我应该能够说:

let buttonComponent = Vue.component('button-component'); 
但这给了我不明确的定义。有什么好处

如果我全局注册它,然后抓取一个实例,它就可以工作了

安装位置是否不是测试此代码的正确位置?我的挂载方法是否在导入之前激发?我只是想澄清一下,如果有人能解释一下,我将不胜感激

import ButtonComponent from './ButtonComponent.vue' 
SectionComponent.vue
组件内部

export default {
  components: { ButtonComponent },
  // Whatever else you have in here
  data() { return {} },
  computed: {}
}

Vue是一个声明性框架,这意味着您实际上并没有强制执行任务。相反,您可以将模板表述为状态的表示,然后Vue为您处理DOM操作

下面是一个基于您描述的您想要做的事情的示例

console.clear()
组件(“按钮组件”{
//标识符只是一个属性,告诉我们这是哪个按钮,所以我们
//你能分辨出他们吗
道具:[“标识符”],
模板:`I'm button{{{identifier}}`,
方法:{
onClick(){alert(this.identifier)}
}
})
新Vue({
el:“应用程序”,
数据:{
有多少按钮:0
},
方法:{
onAddButton(){
这是多少个按钮++
}
}
})

添加一个按钮组件


您是否确实试图在SectionComponent模板中呈现ButtonComponent?是的,我希望能够动态地将按钮添加到section组件中。您只需通过标记在模板中使用
ButtonComponent
。您可以使用
v-if
有条件地显示按钮,或者使用
v-for
显示一组按钮。基本上,您是以一种非常非Vue的方式来考虑这个问题的。使用Vue,您不必强制向DOM添加内容。相反,您可以根据数据的状态描述DOM在模板中的外观,Vue会为您处理所有DOM操作。@Bert谢谢您,这确实有帮助。而不是向“我的分区”组件添加按钮。我会有一个按钮已经到位,我会显示这个按钮时,一些行动发生。根据该动作发生的次数,我可以跟踪并显示按钮的倍数。这一切都是基于数据的变化而不是添加新的组件实例而发生的。因为Vue已经为我做了些什么?这就是我所拥有的。我的问题是如何获取ButtonComponent的实例并使用它?我想通过编程将按钮添加到SectionComponent。我不确定您想问什么,但
对您有效吗?它有效。但是我想用我的组件在JS中实现createElement的等效功能。例如,我想获得按钮组件的一个实例,并在用户单击按钮时将其添加到DOM中。您通常会在
数据
中创建一个数组,当用户单击按钮时附加到该数组中,然后使用
v-for
为每个数组元素生成一个按钮。