表单中的参数特性(记事本案例)

本文介绍了Vue.js中v-model指令的三种修饰符:.lazy用于在change事件中绑定数据;.number用于自动转换输入为数值类型;.trim用于去除输入内容的首尾空格。并通过一个记事本案例展示了如何使用这些修饰符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.lazy

     默认情况下,v-model在<input/>和<textarea>中通常是用户输入数据时绑定数据。如果在v-model后添加一个修饰符.lazy,它就会转变为在change事件中绑定数据。

<input v-model.lazy="msg"/>
<span>{{msg}}</span>

      .lazy修饰符延迟了同步更新属性值的时机,即将原本绑定在input事件的同步逻辑转变为绑定在change事件上。

2.number

      .number是用来将内容自动转换成数值的,用法是直接在v-model后加上.number。该修饰符只是对开始是数字的字符串有效,当数字有非数字字符时,属性值不再变化。

<input v-model.number="age" type="text"/>

3.trim

       .trim的作用就是自动过滤用户输进去的首尾空格,用法和上边的连个修饰符一样,在v-model后面添加.trim。

<input v-model.trim="msg">

4.记事本案例

 

<div id="app">
   <input type="text" v-model="newTodo" v-on:keyup.enter="addTodo"/>
   <ul>
      <li v-for="(todo,index) in todos">{{todo.text}}
          <button v-on:click="removeTodo(index);">x</button>
      </li>
   </ul>
</div>
<Script>
   var app = new Vue ({
       el:"#app",
       data :{
         newTodo:"",
         todos:[
           {text:"买米"} 
         ]
       },
       methods:{
         addTodo:function(){
           var text = this.newTodo.trim();
           if(text){
              this.todos.push({text:text});
           }
           this.newTodo = "";
         },
         removeTodo:function(index){
           this.todos.splice(index,1);
         }
       }
   })
</script>