vue组件之间的传值

组件传参:
组件实例的作用域是孤立的。这意味着不能在子组件的模块中直接引用父组件的数据,必须使用特定的方法才能实现组件之间的数据传递。
如在父组件中向子组件传值

<headerBar message = “hello” />

在子组件中需要使用props获取到父组件的传值:

props: [‘message’]

子组件向父组件传递数据,如当input发生变化时,向子组件传name值:

<input v-model = “name” @change = “setName” />
    methods: {
        setName: function(){
            this.$emit(‘transferName’, this.name)
        }
    }

在父组件中获取数据:

<headerBar @transferName = “getName”/>
    methods: {
        getName: function(msg){
            this.user = msg
        }
    }

子子组件传递数据
子组件之间不能相互传值,那么必须依靠父组件来进行值的传递,即子组件的值传递到父组件,再由父组件传递到另一个子组件。
如我们定义一个data,让它从子组件向父组件传递:

let data = {
    iss: this.iss
    con: this.textContent
    url: this.upImgUrl
}
this.$emit('listen', data)

在父组件中接收数据:(注意标签issue是写在父组件中的一个子组件)

<issue v-show="index == 0" v-on:listen="listenMsg"/>

因为子组件中发送了一个listen事件,则在使用子组件时需要借用这个listen事件:

listenMsg(data){
     this.postData = data;
}

在父组件中定义postData获取到数据。
从父组件向另一个子组件传递值:

<circlepage v-show="index == 1" :data="postData"/>

在circle中获取值,但是如果直接在mounter中获取值,则只能获取到原始值,并不能监测到另一个子组件传递过来的值,所以我们需要在watch中来获取数值:

props: [‘data’],
    watch: {
        data(newVal){
            this.circleList.unshift(newVal);
        }
    }

这样,我们完成了子组件与父组件,父组件与子组件的传值。

作者:rookie.he(kuke_kuke)
博客链接:http://blog.csdn.net/qq_33599109
欢迎关注支持,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue组件之间传值Vue框架中的一个重要功能,它允许不同的组件之间共享数据,实现数据的传递和交互。下面是Vue组件之间传值的最全面解释: 1. 组件组件传值组件通过props属性向组件传递数据,组件通过props属性接收组件传递的数据。这种方式适用于组件之间的数据传递,组件可以向多个组件传递数据。 2. 组件组件传值组件通过$emit方法触发事件,组件通过v-on指令监听事件,并通过事件对象获取组件传递的数据。这种方式适用于组件组件传递数据,组件可以触发多个事件,组件可以监听多个事件。 3. 兄弟组件之间传值:使用一个共同的组件作为中介,通过props属性和$emit方法实现兄弟组件之间的数据传递。这种方式适用于兄弟组件之间的数据共享,需要注意组件的数据传递和事件监听。 4. 使用Vuex进行状态管理:Vuex是Vue的状态管理库,可以实现多个组件之间的数据共享和状态管理。通过Vuex的store对象存储数据和状态,并通过mutations、actions和getters等方法实现数据的修改和获取。 5. 使用事件总线:通过Vue的事件机制,创建一个事件总线,多个组件可以通过事件总线进行数据传递。通过Vue实例的$emit方法触发事件,通过Vue实例的$on方法监听事件,并通过事件对象获取数据。 以上是Vue组件之间传值的最全面解释,需要根据具体的场景选择不同的传值方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值