javascript - 我可以从子组件到父组件获取计算数据吗?

标签 javascript vue.js vuejs2

有什么方法可以从子组件到父组件获取计算数据吗?因为我首先将数据从父级发送到子级,然后我想在父级组件中使用计算属性(数据)。我想这样做是因为我也想在其他组件中重用那个重要的组件(子组件)。

我有一个用于过滤我的项目的搜索输入字段,当我写下一些东西时,我想从子组件中取回该列表。

父组件

<input class="form-control form-control-search m-input" autocomplete="off" type="text" v-on:input='testFunc()' v-model="search" placeholder="Search...">
<paginate-links v-if="items.length > 0" :models="items">
  <div class="m-list-timeline__item no-timeline" v-for="item in filterItems" v-bind:key="item.id">
    {{ item.title }}
  </div>
</paginate-links>

子组件

props: ['item']
computed: {
    filterItems () {
      return filter // here goes my code
    }
}

那我可以获取父组件中的filterItems吗?

最佳答案

有几种方法可以将数据发送回父级,但我想说的最简单的方法可能是在计算中使用发射。

在 child 身上:

computed:{
  myVal() {
    let temp = this.num + 1;
    this.$emit('onNumChange', temp);
    return temp;
  }
}

在父模板中:

<my-child-component @onNumChange="changeHandler"/>

在父脚本中

methods: {
  changeHandler(value) {
    console.log('Value changed to: ', value);
  }
}

你可以用 watch 做类似的事情,或者从父级传递一个函数作为通知父级的 prop,但我推荐的方法是使用 vuex

https://vuex.vuejs.org/en/

关于javascript - 我可以从子组件到父组件获取计算数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50413352/

相关文章:

javascript - 如何更新 Vuex 中的状态数组?

javascript - 错误 : Support for the experimental syntax 'optionalChaining' isn't currently enabled, 但它是

javascript - 在 VueJS 中使用计算属性搜索过滤器

javascript - 使用 javascript 创建链接

javascript - react : How to map select option value to a state key?

javascript - Laravel 5.3 + Vue Reddit 类投票系统

javascript - Vue 2 - 从 ajax 响应渲染组件

javascript - 手动反转数组

javascript - 触发 css :hover event with js

amazon-web-services - AWS Amplify 和 Vue 路由器历史记录模式