Vue .sync修饰符

  • vue通信为单向传输,所以在父组件传递给子组件参数时,子组件不可随意去更改prop中的值
  • 通常做法:可通过自定义事件,通知父组件修改值:
//父组件
<model :text="text" @update="text=$event"></model>		
//子组件 props 接收参数,emit提交事件
props: {
	text: {
		type: String,
		default: ""
	}
},
//事件绑定 触发修改
this.$emit('update',new Date().getTime())
  • 通过.sync来修改,可理解成,将参数传递进去,并且开始自动监听变化(简化代码):
  • 如在组件上绑定text.sync会被扩展为:组件绑定了text属性同时绑定了 @update:text 事件
//父组件属性上增加.sync
<model :text.sync="text"></model>
//子组件绑定update方法对应属性名
this.$emit('update:text',new Date().getTime())
  • 使用v-bind可直接绑定对象,对对象进行解构赋值
obj:{
	content:"",
	title:""
}
//使用v-bind绑定对象
<model v-bind.sync="obj"></model>
//子组件解析所有对象属性
export default {
	props: {
		content: {
			type: String,
			default: ""
		},
		title: {
			type: String,
			default: ""
		}, 
	},
	methods:{
		changeText(){
			this.$emit('update:content',new Date().getTime())
			this.$emit('update:title',new Date().getTime())
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值