vue3(三)-基础入门之v-model双向绑定、v-model修饰符

一、v-model 双向绑定

监听用户的输入事件来实时更新数据,多用于表单 input、textarea以及select元素上

<div id="app">
      <input type="text" v-model="myInputText" />
      <!-- 等价于: -->
      <input type="text" :value="myInputText"  @input="myInputText=$event.target.value"/>
        {{ myInputText }}
</div>

<script>
      const { createApp, ref } = Vue
      createApp({
        data() {
          return {
            myInputText: ''
          }
        }
      }).mount('#app')
</script>

1.v-model 绑定 checkbox

<div id="app">
      <p>挑选以下你喜欢的食物:</p>
      <input type="checkbox" v-model="foodText" value="麻辣烫" />麻辣烫
      <input type="checkbox" v-model="foodText" value="螺狮粉" />螺狮粉
      <input type="checkbox" v-model="foodText" value="关东煮" />关东煮
      <p v-for="item in foodText">{{ item }}</p>
</div>

<script>
      const { createApp, ref } = Vue
      createApp({
        data() {
          return {
            foodText: []
          }
        }
      }).mount('#app')
</script>

演示结果:
在这里插入图片描述

2.v-model 绑定 radio

<div id="app">
	<p>挑选以下你最喜欢的运动:</p>
	      <input type="radio" v-model="sportText" value="篮球" />篮球
	      <input type="radio" v-model="sportText" value="足球" />足球
	      <input type="radio" v-model="sportText" value="网球" />网球
	<p>{{ sportText}}</p>
</div>

<script>
      const { createApp, ref } = Vue
      createApp({
        data() {
          return {
            sportText: ''
          }
        }
      }).mount('#app')
</script>

演示结果:
在这里插入图片描述

3.v-model 绑定 select

<div id="app">
      <select v-model="fruit">
        <option value="apple">苹果</option>
        <option value="orange">橘子</option>
        <option value="banana">香蕉</option>
      </select>
      <p>{{ fruit }}</p>
</div>

<script>
      const { createApp, ref } = Vue
      createApp({
        data() {
          return {
            fruit: 'orange'
          }
        }
      }).mount('#app')
</script>

初始:
在这里插入图片描述
----------------------------------------------分割线------------------------------------------------
选择后:
在这里插入图片描述

二、v-model 修饰符

1.lazy 修饰符

在输入框中输入字符时,v-model 会实时监测输入框的数据变化,而 lazy 修饰符就是等输入框失去焦点后 v-model 才监测输入框的变化,从而节约浏览器资源

2.trim修饰符

对输入的内容进行去首尾空格处理

3.number修饰符

自动将用户的输入值转为数值类型

1、输入以数字开头的值,只计算字母(汉字)之前的值,字母(汉字)之后的忽略不计
在这里插入图片描述
在这里插入图片描述
----------------------------------------------------------------分割线-------------------------------------------------

2、输入以字母(汉字)开头的值,最后得到的值为整体输入的值

在这里插入图片描述
在这里插入图片描述

<div id="app">
	  <!-- lazy 修饰符 -->
      <input type="text" v-model.lazy="myInputText1" />
      {{ myInputText1 }}
      <p></p>
      <!-- trim 修饰符 -->
      <input type="text" v-model.trim="myInputText2" />
      {{ myInputText2 }}
      <p></p>
      <!-- number 修饰符 -->
      <input type="text" v-model.number="myInputText3" />
      number修饰符最后得到的值:{{ myInputText3 }}
    </div>

    <script>
      const { createApp, ref } = Vue
      createApp({
        data() {
          return {
            myInputText1: '',
            myInputText2: '',
            myInputText3: ''
          }
        }
      }).mount('#app')
    </script>
Vue 3中,可以使用动态控制v-model修饰符来实现对v-model修饰符进行动态切换。v-model修饰符是用于对输入框的值进行处理的一种方式。 在Vue 3中,可以通过使用计算属性和动态绑定来实现动态控制v-model修饰符。具体步骤如下: 1. 首先,在data中定义一个变量,用于控制v-model修饰符的切换。例如,可以定义一个名为`modifier`的变量。 2. 在模板中,使用动态绑定将v-model修饰符与`modifier`变量进行绑定。例如,可以使用`:modelModifiers`指令将v-model修饰符与`modifier`变量进行绑定。 3. 在计算属性中,根据`modifier`变量的值返回相应的修饰符对象。例如,可以定义一个名为`modelModifiers`的计算属性,根据`modifier`变量的值返回不同的修饰符对象。 下面是一个示例代码: ```html <template> <div> <input v-model="value" :modelModifiers="modelModifiers" /> </div> </template> <script> export default { data() { return { value: '', modifier: 'trim', }; }, computed: { modelModifiers() { if (this.modifier === 'trim') { return { trim: true }; } else if (this.modifier === 'number') { return { number: true }; } else { return {}; } }, }, }; </script> ``` 在上述示例中,`modifier`变量用于控制v-model修饰符的切换。根据`modifier`变量的值,计算属性`modelModifiers`返回相应的修饰符对象。通过动态绑定`:modelModifiers`指令,可以实现对v-model修饰符的动态控制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值