uniapp传值集(2)

本文详细介绍了Vue中组件之间的传值方法,包括父组件向子组件传值的两种方式(通过props和$parent),以及子组件向父组件传值的方法(通过事件、$refs和bus)。文中还提供了具体的代码示例帮助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//组件间传值
//有明显关系的值传递,eg:父子值传递
一、父组件向子组件传值
1.//通过props来实现,子组件通过props来接收父组件传过来的值
eg:	<fcomponents :reciveUserInfo="userInfo"></fcomponents>
接收:	props:{
			reciveUserInfo:{//简单数据类型
				type: [Boolean, String],
				default: false
			},
			reciveUserInfo:{//复杂数据类型 obj  arr
				type: Array,
				      // 对象或数组默认值必须从一个工厂函数获取
				default: function () {
					return [
						//模拟栏目列表数据
					]
			}	
		},
2.//通过$parent  (一般用来回取父组件中的属性及方法)
//$parent(用于子组件获取父组件实例) - 当前组件树的根 Vue 实例。如果当前实例没有父实例,此实例将会是其自己
//this.$parent.$options.value   ...
二、子组件向父组件传值
1.//都是通过事件,:
this.$emit("send","我来自子组件") 
eg:<fcomponents @send="getinfo"></fcomponents>
methods:{
	getinfo: function(res){
		console.log("res=========",res)
	}
}

2.$refs  (主要用来调用子组件里的属性和方法)  
//this.$children[i].属性,访问子组件的
//$children 是一个数组,是直接儿子的集合,关于具体是第几个儿子,那么儿子里面有个 _uid 属性,可以知道他是第几个元素,是元素的唯一标识符,根据这个属性
//不大适合传递数
//通常是初始化页面(也就是视图层渲染完以后)才能调用,如果是初始化的话建议在mounted生命周期或者使用this.$nextTick()将回调延迟到下次 DOM 更新循环之后执行(但我们首先得标识ref,相同组件ref的值如果重复会被后面的组件覆盖),如果不是初始化的话必须要等待它加载完以后才能够调用(this.nextTick)
this.$refs.popup.open()


bus
//bus.js  创建行vue 对象
import Vue from 'vue'
export default new Vue()

A组件中 :传递(触发值传递) 
import bus from '@/utils/bus.js';
 methods: {
     onSend() {
         bus.$emit('receiveA', this.msg);
     }
 },
 B组件中:接收值
 import bus from '@/utils/bus.js';
mounted() {
   bus.$on('receiveA', (val) => {
     console.log('我是onB组件,接收来自onA的值:', val);
   });
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值