vue前端开发自学,祖孙多层级组件嵌套关系数据传输

发布时间:2024年01月13日

vue前端开发自学,祖孙多层级组件嵌套关系数据传输!官方提供了一个解决方案,就是,在根组件内使用provide,哪个子孙组件想调用这个数据,就可以inject接收就行了。虽然是方便了,但是这个有点要求,就是只能自上而下的传递。不能反过来(不能子孙给根节点!)

<template>
  <h3>组件之间,层级嵌套数据透传练习</h3>
  <Parent />
</template>
<script>
import Parent from './components/Parent.vue';
  export default{
    components:{
      Parent
    },
    data(){
      return{
        srcinfo2:"我是根节点数据"
      }
    },
    provide(){
      //使用函数的形式,可以访问到this对象
      return{
        srcinfo:this.srcinfo2
      }
    }
  }
</script>

如图,根组件内,我们使用了函数的样式,调用函数样式的好处!是可以让我们访问到当前页面的动态数据。

<template>
    <h3>Parent</h3>
    <p>{{ msg }}</p>
    <Child />
</template>
<script>
    import Child from './Child.vue';
    export default{
        components:{
            Child
        },
        data(){
            return {
                msg:this.srcinfo
            }
        },
        inject:["srcinfo"],
        
    }
</script>

parent.VUE组件内的代码展示。

<template>
    <h3>Child</h3>
    <p>{{ msg }}</p>
</template>
<script>
    export default{
        inject:["srcinfo"],
        data(){
            return {
                msg:this.srcinfo
            }
        }
    }
</script>

child.vue组件内代码展示。

下面看看实际的浏览器效果。

如图,可以看见,无论是父节点,还是子孙节点,都是可以拿到根节点定义的数据的。

文章来源:https://blog.csdn.net/yrldjsbk/article/details/135572442
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。