极速上手 VUE 3—v-model 的使用变化

props 是单向数据流,子组件只能读取,并不能修改 msg 。对象类型可以,但不建议修改。

1.2、父子组件双向绑定

子组件同步一个数据的时候,子组件既要使用,还要修改这个数据,以前需要通过 props Down 和 Events Up 来实现。现为了方便,提供了特殊的语法糖 v-model 。

父组件代码:

{{msg}}

子组件 SetInput.vue 文件代码

v-model = “msg” 可以翻译为:

:value=“msg”

@input=“msg=$events”

所以父组件的代码可以翻译为:

<set-input :value=“msg” @input=“msg=$events” />

在一个组件上,v-model 只能使用一次,如果想要对多个数据同步绑定,则可以使用.sync修饰符。

二、.sync修饰符


.sync 和 v-model 都是语法糖,本质还是父子组件间的通信。使用 .sync 修饰符实现父子组件多个数据双向绑定。

因为 vue2 中组件只能定义一个 v-model,如果父子需要实现多个数据双向绑定,就需要借助 .sync 修饰符。

.sync 使用原理:

//可翻译为

<child-comp

:value=“msg” @input=“msg=$event”

:foo=“foo” @update:foo=“foo=$event” />

/*********** 一个完整的代码示例 *************/

//父组件代码

//子组件代码

三、Vue3.x 使用 v-model


vue2 中的 v-model 和 .sync 功能重叠,容易混淆,因此 vue3 做了统一,一个组件可以多次使用 v-model 。

3.1、vue 3 的v-model使用原理:

//可翻译为

<child-comp :modelValue=“msg” @update:modelValue=“msg=$event” />

单个数据双向绑定完整示例

//父组件代码

子组件代码:

vue3 使用特定的 modelValue ,避免 value 的占用,通过 update:modelValue 实现数据双向绑定。值得注意的是,vue3 移除了 model 选项。

3.2、多个 v-model 使用

在 vue3 一个组件可以使用多个 v-model ,统一了 vue2 的 v-model 和 .sync 修饰符。

使用原理:

//可翻译为

<child-comp

:name=“name” @update:name=“name=$event”

:age=“age” @update:age=“age=$event” />

实现多个数据双向绑定完整实例:

//父组件代码

//子组件代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值