vue3中的v-model

本文介绍了Vue3中v-model的重大升级,包括组件上单个和多个v-model的变化,v-model别名的使用,以及自定义修饰符的支持。Vue3移除了v-bind的.sync修饰符和组件的model选项,引入了modelValue和update:modelValue的概念,使得组件的双向绑定更加灵活。
摘要由CSDN通过智能技术生成

1.  Vue3的v-model:

vue3.0中对如何在自定义组件上使用v-model进行了重大升级,此文主要列出了变化要点,并给出了示例代码。

2 . V-model  具体的变化内容:

    -组件上单个v-model           :    属性以及事件的默认名称变了

   -组件上单个v-model别名     :    v-bind 的 .sync 修饰符和组件的 model 选项被移除了,取而代之                                                       的是 v-model 参数

   -组件上多个v-model            :    支持同一组件同时设置多个 v-model

   -组件上v-model自定义修饰符  :      支持自定义 v-model 修饰符

3.V-model 的历程

Vue 2.0

v-model 只能绑定在组件的 value 属性上。

<son-com v-model="msg" />

也就是说在son-com这个的组件的内部,你只能通过一个名为value的属性来获取父组件中传入的msg的值。

{
    props:['value']}

这一点其实不太友好:value这个词太没有语义了。所以在后续版本中增加可修改属性名的功能。

vue 2.2

在此版本中,组件在定义可以写 model 项,开发者通过这个设置和 v-model 关联的属性和事件。

具体做法是在组件内部定义一个model项,其中prop用来设置v-model中默认的value的别名, event用来设置v-model中默认的input事件的别名

Vue.component('SonCom',{
    template: `    <div>{
  {checked}} <button @click="$emit('change', false)">设成false</div>    `  model: {
      prop: 'checked', // 默认叫value    event: 'change' // 默认叫input    }}

vue 2.x

一个组件上只能一个v-model。

当然,你也可以用v-bind.sync来达成多个数据项双向绑定的效果,代码如下:

<div id="app">   <h2>父组件</h2>    {
  {a}} - {
  {b}}   <son-com v-bind:a.sync="a" v-bind:b.sync="b"></son-com> </div> <script> Vue.component('S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值