vue父子组件传值,sync语法糖

本文详细介绍了Vue.js中父子组件间如何通过props进行数据传递,包括各种类型的prop定义,以及使用$emit触发事件实现子组件向父组件传递信息。同时,讲解了如何通过ref调用子组件方法和改变父组件状态,以及利用.sync修饰符实现双向数据绑定。此外,还涵盖了预处理props数据的验证函数。
摘要由CSDN通过智能技术生成

父子传值props

父组件传递

<test :content="title"></test>
data() {
	return {
		title: 'Hello'
	}
}

子组件接收

props:{
	content:{
		type:String,//类型
		default:'',//默认值
		validator: function(val){//预处理props接收过来的数据
			return val
		},
	}
}

props大概有这几种类型

props:{
	refstr:{
		type:String,
		default:''
	},
	refnum:{
		typr:Number,
		default:0
	},
	refbool:{
		type: Boolean,
		default: false
	},
	refarr:{
		type:Array,
		default:()=>{
			return []
		}
	},
	refobj:{
		type:Object,
		default:()=>({})
	},
	reffun:{
		type:Function,
		default:()=>()=>{}
	}
}

子父传值$emit
子组件

<button type="default" @click="ok">子组件点击</button>
ok(){
	this.$emit('child-event','我要传递的信息')
}

父组件

<test :content="title" @child-event="parent"></test>
parent(e){
	console.log(e)//打印出子组件传递的信息
}

父组件调用子组件方法ref
父组件给子组件添加ref,并且命名。

<view class="home">
	<button type="default" @click="setup">点击</button>
	<test ref="test"></test>
</view>
methods: {
	setup(){
		this.$refs.test.ok()
		this.$refs.test.adv = '修改你'
	},
}

子组件

<view class="">
	{{adv}}
	<button type="default" @click="ok">子组件点击</button>
</view>
data(){
	return {
		adv:'子组件内容'
	}
},
methods:{
	ok(){
		console.log('我是子组件的方法')
	}
}

子组件改变父组件的值:.sync语法糖
父组件

<div>
	{{isShow}}
	<test ref="test" :refbool.sync='isShow'></test>
</div>
data() {
	return {
		isShow:true
	}
}

子组件

<div class="">
	<button type="default" @click="ok">子组件点击</button>
</div>
props:{
	refbool:{
		type: Boolean,
		default: false
	},
},
methods:{
	ok(){
		this.$emit('update:refbool',false)
	}
}

转载 https://blog.csdn.net/qq_45074127/article/details/105452075

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值