美文网首页
vue多层嵌套组件/祖孙传值,嵌套组件传值: v-on="$li

vue多层嵌套组件/祖孙传值,嵌套组件传值: v-on="$li

作者: 前端青音 | 来源:发表于2019-07-15 11:52 被阅读0次
image.png

在不用状态管理vuex的时候,如何让GrandFather与Son通信,我们可以用可以emit一层一层的传递会显得冗余。 vue2.4之后,提出attr、
$listeners ,可以实现跨级组件通信。

$listeners官网解说 :事件传递

$attrs官网解说:属性传递

简言之,在GrandFather中给Father传事件与属性,在Father组件中使用
v-bind="attrs" v-on="listeners",在Son组件中,就可以通过
this.attrs.属性 和 this.emit('事件')来触发从GrandFather中传入的事件

GrandFather组件
<template>
    <div id="app">
        <father :info="info" @getData="getData"></father>
    </div>
</template>

<script>
    import Father from "./Father";

    export default {
      components: {
        Father},
      name: "main-page",
      data() {
          return {
            info:'我是来自父组件'
          }
      },
      created() {},
      mounted(){},
      methods: {
         getData (val) {
           this.msg = val
        },
      }
    }
</script>
Father组件
<template>
    <son v-bind="$attrs" v-on="$listeners"></son>
</template>

<script>
    import Son from "./Son";

    export default {
      components: {Son},
      name: "son",
      props:[]
    }
</script>
Son组件
<template>
  <div>
    <h1 class="btn">{{this.$attrs.info}}</h1>
  </div>
</template>

<script>
    export default {
      name: "temp-son",
      mounted() {
        this.$emit('getData','我来自孙子组件')
      }
    }
</script>

相关文章

  • vue多层嵌套组件/祖孙传值,嵌套组件传值: v-on="$li

    在不用状态管理vuex的时候,如何让GrandFather与Son通信,我们可以用可以attr、$listener...

  • Vue prop 传值和 provide→inject传值的区别

    应用场景 prop传值是平常Vue父子组件之间主要传值的方式,并且这是响应式的。但是,如果你有个应用嵌套了多层组件...

  • react+umi框架相关

    createContext Provider, Consumer多层组件嵌套传值的实现参考react.Fragme...

  • Vue - 传值

    Vue 传值有两种:1)父组件向子组件传值(属性传值,Prop传值)2)子组件向父组件传值 一、父组件向子组件传值...

  • Composition API的使用

    目标 父子组件传值props 和 context 祖孙组件传值provice和inject 生命周期 on**...

  • 组件间传值

    父子组件传值父传子 // 接收父组件传值 子传父 // 触发一个自定义事件 祖孙组件传值// 添加依赖数据,它里面...

  • Vue父子组件通信和双向绑定

    本篇文章主要介绍父子组件传值,组件的数据双向绑定。 1. 基础父子组件传值 父子组件传值,这是Vue组件传值最常见...

  • vue2.0的三种常用传值方式,并且如何实现?

    vue2.0 组件传值方式有三种:父组件向子组件传值,子组件向父组件传值,非父子组件传值 : 父传子: 首先现在父...

  • 2019-03-13

    vue父子组件传值,(父组件向子组件传值用prop ,子组件向父组件传值:子组件调用父组件方法值以参数的方式传递)...

  • 2019-03-13

    vue父子组件传值,(父组件向子组件传值用prop ,子组件向父组件传值:子组件调用父组件方法值以参数的方式传递)...

网友评论

      本文标题:vue多层嵌套组件/祖孙传值,嵌套组件传值: v-on="$li

      本文链接:https://www.haomeiwen.com/subject/enagkctx.html