Vue 之孙组件向爷组件通讯

怎样把孙组件内特定的数据传给爷组件?

比方
把孙组件的名字传给爷组件并在爷组件上显现

思绪
在孙组件被点击后 emit 事宜 1 和孙组件的名字
在父组件上监听孙组件 emit 出的事宜 1,再次 emit 事宜 2
在爷组件上监听父组件 emit 出的事宜 2,并触发处置惩罚函数
这个处置惩罚函数将父组件传出的子组件名字显现在父组件上

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.7/dist/vue.js"></script>
  </head>
  <body>
    <div id="app">
      child name: {{child}}
      <parent v-on:say2='greeting("child", $event)'></parent>
    </div>
  </body>
  <script>
    Vue.component('parent', {
      template: `
      <div>
        <child v-on:say1='$emit("say2", $event)'></child>
      </div>      `
    })
    Vue.component('child', {
      template: `
        <div>
          child
          <button v-on:click='$emit("say1", "Jack")'>greeting</button>
        </div>
      `
    })
    new Vue({
      el: '#app',
      data: {
        child: '',
      },
      methods: {
        greeting: function (key, value) {
          this[key] = value
        },
      }
    })
  </script>
</html>
    原文作者:TaoWu
    原文地址: https://segmentfault.com/a/1190000018897912
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞