javascript - 在Vue js中访问父级子事件的数据

标签 javascript vue.js vuejs2 vue-component

我有两个组件,一个位于另一个内部。我在父组件上有一个单击事件,该事件应该更改子组件的数据值。

<template>
   <div>
      .....
      .....
      <my-component
           :options="options">
      </my-component>
   </div>
.....
.....
</template>

<script>
...
...
data(){
}
methods:{
   clickEvent(array_from_child){
      this.array = array_from_child; //array is in my-component
   }
}
components:{
    ....
}
</script>

我想在子元素更改时触发 clickEvent 方法。怎么做?

最佳答案

您似乎在问两个不同的问题。

首先,从父级访问子级的数据:

如果可能,您应该使用子组件的 props 将数组传递给子组件。然后只需更改父级中的数组,任何更改都会反射(reflect)在子级中。如果该数组确实需要位于子级中,那么您可以定义一个方法来检索它。

<template>
    <child-component ref="child">
    </child-component>
</template>

methods: {
    onClick() {
        const myArray = this.$refs.child.getMyArray();
    }
}

然后,在 child 身上

methods: {
    getMyArray() {
        return this.myArray;
    }
}

第二,从子级触发父级的变化

在这种情况下,Flame的回答是最地道的。在子级中发出自定义事件并在父级中监听该事件。

关于javascript - 在Vue js中访问父级子事件的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55108690/

相关文章:

css - Tailwind CSS + VueJS 单文件组件和 VS Code 集成

vue.js - 使用 vue-test-utils 配置过滤器

javascript - 在 Vue 2 中更改时传递范围输入值

javascript - Vue.js + Chartist : Using charts in a component

javascript - 考虑到页面刷新,如何在固定时间延迟固定时间后调用 javascript 函数

javascript - ASP MVC 网格非因素 - 将新行添加到网格表

javascript - 如果当前组件发生更改,则停止加载新的路由/组件

javascript - JavaScript 中的正则表达式将 } 替换为前面的字符

vue.js - VuetifyJS `nuxt` 属性在 NuxtJS 框架中无法像 `nuxt-link` 一样工作

vue.js - 视觉 : Access Vue component method inside rendered named slot