Javascript 从子装载发出事件并从父装载访问

Javascript 从子装载发出事件并从父装载访问,javascript,vue.js,Javascript,Vue.js,假设我有一个名为child的组件。我想在父组件中访问那里的数据。我想在childsmount:this.$emit('get-data',this.data)中发出一个事件,然后最终在父装载中检索它。这可行吗?如果是这样的话,我们怎样才能做到呢?如果没有,还有什么更好的选择 干杯。将数据从子级传递到父级的另一种方法是作用域插槽。我认为在您的情况下,这比事件更合适(只传递数据,与真实事件没有任何关系)。但我不确定我是否完全理解你 我不知道是否能够从父级mount()中的子级mount()侦听$em

假设我有一个名为
child
的组件。我想在父组件中访问那里的数据。我想在
childs
mount:
this.$emit('get-data',this.data)
中发出一个事件,然后最终在父装载中检索它。这可行吗?如果是这样的话,我们怎样才能做到呢?如果没有,还有什么更好的选择


干杯。

将数据从子级传递到父级的另一种方法是作用域插槽。我认为在您的情况下,这比事件更合适(只传递数据,与真实事件没有任何关系)。但我不确定我是否完全理解你

我不知道是否能够从父级
mount()
中的子级
mount()
侦听
$emit
'd数据。您需要将侦听器绑定到父模板中的子组件。典型示例使用

Child.vue:

export default{
   name: 'child',
   mount(){
     this.$emit('get-data', this.data);
   }
}
<template>
   <div>
      <child v-on:get-data="doSomething"></child>
   </div>
</template>
<script>
import Child from './Child';
export default{
   name: 'parent',
   components: { Child },
   methods(){
     doSomething(data){
       //Do something with data.
     }
   }
}
</script>
Parent.vue:

export default{
   name: 'child',
   mount(){
     this.$emit('get-data', this.data);
   }
}
<template>
   <div>
      <child v-on:get-data="doSomething"></child>
   </div>
</template>
<script>
import Child from './Child';
export default{
   name: 'parent',
   components: { Child },
   methods(){
     doSomething(data){
       //Do something with data.
     }
   }
}
</script>

从“./Child”导入子项;
导出默认值{
名称:'父',
组件:{Child},
方法(){
剂量测量(数据){
//对数据做些什么。
}
}
}

我会使用
创建的
钩子而不是
挂载的
,因为您只需要访问反应数据和事件。您可以发射整个子组件,然后根据需要钻取其数据

模板

<child-component @emit-event="handleEvent">
  {{ parentData }}
</child-component>
看看这个