Vue3中的v-model与Vue2中的不同

23 篇文章 1 订阅

一用处:

1).v-model可以用到表单元素上 ,

  1. Vue2中v-model默认绑定的属性是value绑定的事件是@input

  2. Vue3中v-model默认绑定的属性是modelValue,默认绑定的事件是@update:modelValue

v-model= "uname"

   双向数据的绑定,页面数据变化,绑定的数据也会跟着变化;

  绑定的数据变化,页面也会跟着变化

<input v-model="uname"/>

<input :value="uname" @input = "uname=$event.target.value">

2).v-model可以用于组件上

  实现父子之间数据交互的是双向的

   1.Vue2的规则:

 <my-com v-model="info"></my-com>

<my-com :value="info" @input = "info = $event"></my-com>

v-model仅仅只能使用一次,多次使用只能使用.sync

<my-com v-model="info" :msy.sync="msg"></my-com>

   2.Vue3的规则:​​​​​​​

  1. .sync被废除,Vue3中v-model可以绑定多个值第一个值为modelValue,从第二个值开始就是它本身

<my-com v-model = "info"></my-com> 

<my-com :modelValue="info" @update:modelValue="info=$event"></my-com>

父组件:

<template>
  <div>v-model指示</div>
  <hr />
  <div>{{ info }}---msg:{{ msg }}</div>
  <text-event v-model="info" v-model:msg="msg"></text-event>
  <!-- <text-event :modelValue="info" @update:modelValue="info = $evevt"></text-event> -->
</template>

<script>
import TextEvent from './TextEvent.vue'
import { ref } from 'vue'
export default {
  name: 'App',
  components: {
    TextEvent
  },
  setup() {
    const info = ref('hello')
    const msg = ref('中国你好')
    return { info, msg }
  }
}
</script>

<style></style>

 子组件:

<template>
  <div>textevent---{{ modelValue }}</div>
  <button @click="handlerClick">点击修改</button>
</template>

<script>
export default {
  name: 'TextEvent',
  props: {
    // vue3中默认的b
    modelValue: {
      type: String,
      default: ''
    },
    msg: {
      type: String,
      default: ''
    }
  },
  setup(props, context) {
    const handlerClick = function() {
      context.emit('update:modelValue', 'nihao')
      context.emit('update:msg', '你最棒!')
    }
    return { handlerClick }
  }
}
</script>

<style></style>

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值