Vue.js按键修饰符及v-model修饰符

简介: Vue.js按键修饰符及v-model修饰符

一、按键修饰符


v-on指令用来进行事件监听(如单击事件、键盘事件等)


v-on监听键盘事件的基本使用示例:


 <div id="root">
        <input type="text" v-on:keyup="counter+=1">
        <p>在输入框输入了{{counter}}个字符</p>
    </div>
    <script>
        Vue.config.productionTip = false;
        const vm = new Vue({
            el: '#root',
            data: {
                counter: 0
            },
            methods: {
            }
        })
    </script>


执行结果:



       在监听键盘事件时,经常需要检查详细的按键。Vue.js允许为v-on在监听键盘事件时添加按键修饰符。例如:


<!-- 只有在'key'是'enter'时调用'submit()'-->
<input v-on:keyup.enter="submit()">
<!-- 缩写语法 -->
<input @keyup.enter="submit">


下面列出官方提供的所有按键修饰符别名:


.enter => //enter键
.tab => //tab键
.delete (捕获"删除"和"退格"按键) => //删除键
.esc => //取消键
.space => //空格键
.up => //上
.down => //下
.left => //左
.right => //右


(1)回车键按键修饰符示例


    <div id="root">
        <input type="text" v-model="content" v-on:keyup.enter="fun(content)">
    </div>
    <script>
        Vue.config.productionTip = false;
        const vm = new Vue({
            el: '#root',
            data: {
                content: ''
            },
            methods: {
                fun:function(data){
                    alert('录入内容为:'+data);
                    this.content='';
                }
            }
        })
    </script>


执行结果:



       在input框中输入"夏志121"后按下回车键,松开回车键后在浏览器中将弹出对话框"录入内容为:夏志121"。


(2)自定义按键修饰符示例


       Vue.js还支持自定义按键修饰符,可以利用按键对应的键码来实现,可以把上面的功能改成松开F2后弹出输入的内容,而F2对应的键码是113,那么久可以对代码进入如下修改:


    <div id="root">
        <input type="text" v-model="content" v-on:keyup.113="fun(content)">
    </div>
    <script>
        Vue.config.productionTip = false;
        const vm = new Vue({
            el: '#root',
            data: {
                content: ''
            },
            methods: {
                fun:function(data){
                    alert('录入内容为:'+data);
                    this.content='';
                }
            }
        })
    </script>


执行结果:



在input框中输入"你好"后按下F2,松开F2后在浏览器中将弹出"录入内容为:你好"。


二、v-model修饰符


       v-model可以实现表单元素和数据的双向绑定。与事件修饰符类似,v-model指令也有修饰符,用于控制数据同步的机制。


(1).lazy


       v-model默认是在input事件中同步输入框中的内容的,即一旦有数据发生改变,对应data中的数据就会自动发生改变。若使用lazy修饰符,可以让数据在失去焦点或回车时会更新。


v-model的lazy修饰符使用示例:

    <div id="root">
        <input v-model.lazy="content">
        <div>{{content}}</div>
    </div>
    <script>
        Vue.config.productionTip = false;
        const vm = new Vue({
            el: '#root',
            data: {
                content:"这是content"
            },
            methods: {
            }
        })
    </script>


执行结果:



(2).number


       默认情况下,在输入框中输入的内容会被当作字符串类型进行处理,这是HTML的底层逻辑造成的,如果加上number修饰符,就可以让你在输入数字的时候将输入的内容转换成number类型。


v-model的number修饰符使用示例:


    <div id="root"><br><br>
        <input v-model="content1">
        <div>【不加number修饰符】输入内容:{{content1}}</div>
        <div>【不加number修饰符】数据类型:{{typeof content1}}</div>
        <input v-model.number="content2">
        <div>【不加number修饰符】输入内容:{{content2}}</div>
        <div>【不加number修饰符】数据类型:{{typeof content2}}</div>
    </div>
    <script>
        Vue.config.productionTip = false;
        const vm = new Vue({
            el: '#root',
            data: {
                content1:"这是content1",
                content2:"这是content2"
            },
            methods: {
            }
        })
    </script>


执行结果:


分别在第一个输入框和第二个输入框中输入"121",在浏览器生成的内容如下:



(3).trim


trim修饰符可以去除输入内容左右两边的空格。


v-model的trim修饰符使用示例:


    <div id="root">
        <input v-model.trim="content">
        <div>输入内容:{{content}}</div>
    </div>
    <script>
        Vue.config.productionTip = false;
        const vm = new Vue({
            el: '#root',
            data: {
                content:"content"
            },
            methods: {
            }
        })
    </script>


执行结果:


目录
打赏
0
0
0
0
32
分享
相关文章
Vue3中v-model在处理自定义组件双向数据绑定时,如何避免循环引用?
Web 组件化是一种有效的开发方法,可以提高项目的质量、效率和可维护性。在实际项目中,要结合项目的具体情况,合理应用 Web 组件化的理念和技术,实现项目的成功实施和交付。通过不断地探索和实践,将 Web 组件化的优势充分发挥出来,为前端开发领域的发展做出贡献。
158 64
Vue3中v-model在处理自定义组件双向数据绑定时有哪些注意事项?
在使用`v-model`处理自定义组件双向数据绑定时,要仔细考虑各种因素,确保数据的准确传递和更新,同时提供良好的用户体验和代码可维护性。通过合理的设计和注意事项的遵循,能够更好地发挥`v-model`的优势,实现高效的双向数据绑定效果。
204 64
Vue 3 中 v-model 与 Vue 2 中 v-model 的区别是什么?
总的来说,Vue 3 中的 `v-model` 在灵活性、与组合式 API 的结合、对自定义组件的支持等方面都有了明显的提升和改进,使其更适应现代前端开发的需求和趋势。但需要注意的是,在迁移过程中可能需要对一些代码进行调整和适配。
203 60
|
4月前
|
Vue3中使用provide/inject来避免v-model的循环引用
`provide`和`inject`是 Vue 3 中非常有用的特性,在处理一些复杂的组件间通信问题时,可以提供一种灵活的解决方案。通过合理使用它们,可以帮助我们更好地避免`v-model`的循环引用问题,提高代码的质量和可维护性。
165 58
除了provide/inject,Vue3中还有哪些方式可以避免v-model的循环引用?
需要注意的是,在实际开发中,应根据具体的项目需求和组件结构来选择合适的方式来避免`v-model`的循环引用。同时,要综合考虑代码的可读性、可维护性和性能等因素,以确保系统的稳定和高效运行。
141 56
vue学习第九章(v-model)
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript与Vue的大一学生,自学前端2年半,正向全栈进发。此篇介绍v-model在不同表单元素中的应用及修饰符的使用,希望能对你有所帮助。关注我,持续更新中!🎉🎉🎉
70 1
vue学习第九章(v-model)
关于vue3中v-model做了哪些升级 ?
【10月更文挑战第1天】
235 59
在 Vue 3 中,如何使用 v-model 来处理自定义组件的双向数据绑定?
需要注意的是,在实际开发中,根据具体的业务需求和组件设计,可能需要对上述步骤进行适当的调整和优化,以确保双向数据绑定的正确性和稳定性。同时,深入理解 Vue 3 的响应式机制和组件通信原理,将有助于更好地运用 `v-model` 实现自定义组件的双向数据绑定。
|
8月前
|
vue中使用 HotKeys.js 教程(按键响应、快捷键开发)
vue中使用 HotKeys.js 教程(按键响应、快捷键开发)
303 0
|
6月前
|
Vue2.0、Vue3.0分别使用v-model封装组件[Vue必会]
本文介绍了在Vue 2和Vue 3中如何使用`v-model`来实现组件间的双向数据绑定,包括在Vue 2中使用`value`和`input`事件,以及在Vue 3中使用`modelValue`和`update:modelValue`事件的方法。
471 22

热门文章

最新文章