第六十二篇:Vue的双向绑定与按键修饰符
好家伙,依旧是vue的基础
1.按键修饰符
假设我们在一个<input>框中输入了12345,我们希望按一下"Esc"
然后删除所有前面输入的内容,这时候,我们会用到按键修饰符,
在监听键盘事件时,我们经常需要判断详细的按键。
此时,可以为键盘相关的事件添加按键修饰符,例如:
1.1.基本使用方法
<input type="text" @keyup.esc="clearInput" @keyup.enter="log"> </input>
//key为"esc"时调用clearInput方法,
//key为"Enter"时调用log方法
添加方法配置:
methods:{
clearInput(e){
console.log('clearInput方法被触发')
e.target.value =''
},
log(){
console.log('log方法被触发')
}
}
按下"Esc"
可行,
2.数据的双向绑定v-model
vue提供了v-model双向数据绑定指令,用来辅助开发者在不操作DOM的前提下,快速获取表单数据
2.1.基本使用方法
<body> <div id="app"> <P>第一个框</P> <input type="text" v-model="username"> <p>第二个框</p> <input type="text" :value="username"> </div> <script src="https://cdn.jsdelivr.net/npm/vue@2"></script> <script> const vm = new Vue({ el:'#app', data:{ count:1, username:'zhangsan', }, methods:{ } }) </script> </body>
可以看见其将数据绑定到了input框中
2.2.v-model和v-bind的区别(为什么是双向绑定?)
我们分别来尝试修改第一个<input>和第二个<input>中的数值
先改第一个框
可以看见第二个框的数值也随之改变
再来改第二个
对第二个框的数值进行更改,第一个框的数值不再改变
这也就是双向绑定了,v-model使input框的值与"username"双向绑定 将(view)与(model)绑定起来
其中一个改变,另一个也随之改变
而v-bind仅仅是单向绑定,视图的改变不会使数据发生改变,
但数据的改变会使视图发生变化
3.v-model的修饰符
v—model 指令的修饰符
为了方便对用户输入的内容进行处理,vue为v—model指令提供了3个修饰符,分别是:
修饰符 作用 示例
.number 自动将用户的输入值转为数值类型 <input v-model.number="age" />
.trim 自动过用户输入的首尾空白字符 <input v-model.trim="msg' />
.lazy 在"change"时而非 "input"时更新 <input v-model.lazy="msg" />
举个栗子:
<body> <div id="app"> <P>第一个框</P> <input type="text" v-model.number="count1">+<input type="text" v-model.number="count2"> =<span>{{count1+count2}}</span> </div> <script src="https://cdn.jsdelivr.net/npm/vue@2"></script> <script> const vm = new Vue({ el:'#app', data:{ count1:11, count2:22, username:'zhangsan', }, methods:{ } }) </script> </body>
效果如下
若果不使用.number,就会
That's all.