Vue.js按键修饰符及v-model修饰符示例详解

目录
  • 一、按键修饰符
    • (1)回车键按键修饰符示例
    • (2)自定义按键修饰符示例
  • 二、v-model修饰符
    • (1).lazy
    • (2).number
    • (3).trim

一、按键修饰符

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>

执行结果:

到此这篇关于Vue.js按键修饰符及v-model修饰符的文章就介绍到这了,更多相关Vue.js v-model修饰符内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Vue.js 事件修饰符的使用教程

     一.前言 熟悉了 Vue 的指令系统后,在实际开发中,不可避免的会使用到对于事件的操作,如何处理 DOM 事件流,成为我们必须要掌握的技能.不同于传统的前端开发,在 Vue 中给我们提供了事件修饰符这一利器,使我们可以便捷的处理 DOM 事件,本章,一起来学习如何使用事件修饰符来实现对于 DOM 事件流的操作. 仓储地址: https://github.com/Lanesra712/VueTrial/tree/master/Chapter01-Rookie/directives  二.干货合集

  • Vue.js学习笔记之修饰符详解

    本篇将简单介绍常用的修饰符. 在上一篇中,介绍了 v-model 和 v-on 简单用法.除了常规用法,这些指令也支持特殊方式绑定方法,以修饰符的方式实现.通常都是在指令后面用小数点"."连接修饰符名称. 一.v-model的修饰符 v-model 是用于在表单表单元素上创建双向数据绑定的指令.在 <input> 和 <textarea> 上,默认通过监听元素的 input 事件来更新绑定的属性值. 为了能明显的看到绑定属性值的变化,需要在Chrome浏览器中安

  • Vue.js中 v-model 指令的修饰符详解

    1 .lazy v-model 指令默认会在 input 事件中加载输入框中的数据(中文输入法中输入拼音的过程除外).我们可以使用 .lazy 懒加载修饰符,让其只在 change 事件中再加载输入框中的数据. html: <div id="app"> <input type="text" v-model.lazy="content" placeholder="请输入" value="初始值&quo

  • 详解Vue.js中.native修饰符

    修饰符(Modifiers)是以半角句号 . 指明的特殊后缀,用于指出一个指令应该以特殊方式绑定.这篇文章给大家介绍Vue.js中.native修饰符,感兴趣的朋友一起看看吧. .native修饰符 官方对.native修饰符的解释为: 有时候,你可能想在某个组件的根元素上监听一个原生事件.可以使用 v-on 的修饰符 .native .例如: <my-component v-on:click.native="doTheThing"></my-component>

  • 基于vue.js中事件修饰符.self的用法(详解)

    .self可以理解为跳过冒泡事件和捕获事件,只有直接作用在该元素上的事件才可以执行. 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>self</title> <script src="vue.js"></script> <!--'''''''

  • vue.js中修饰符.stop的用法解析

    目录 修饰符.stop的用法 用法如下 下面是全部的代码 stop事件修饰符 stop事件修饰符具体介绍 修饰符.stop的用法 .stop修饰符是用来阻止冒泡事件的发生的. 用法如下 <a v-on:click.stop="doThis"></a> 下面是全部的代码 <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF

  • Vue.js 2.x之组件的定义和注册图文详解

    前言 什么是组件 组件: 组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的功能模块,将来我们需要什么样的功能,就可以去调用对应的组件即可. 模块化和组件化的区别 模块化:是从代码逻辑的角度进行划分的:方便代码分层开发,保证每个功能模块的职能单一 组件化:是从UI界面的角度进行划分的:前端的组件化,方便UI组件的重用 全局组件的定义和注册 组件Component是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码. 全局组件的定义和注

  • vue.js的computed,filter,get,set的用法及区别详解

    1.vue.js的computed方法: 处理复杂逻辑,基于依赖缓存,当依赖发生改变时会重新取值.用methods也可以实现同样的效果,但methods在重新渲染的时候会重新调用执行,在性能上computed优于methods,当不需要缓存时可用methods. 实例1:computed和methods实现翻转字符串 <template> <div> <input v-model="message"> <p>原始字符串: {{ messa

  • Vue.js 2.0学习教程之从基础到组件详解

    前言 最近这段时间里不停的做着Vue的技术分享,虽然不是什么深层次的代码底能架构,如果底层架构真说出来,我就不会做Vue.js 2.0从基础到组件了,就会分享Vue从底层到还是到底层.我相信能来看我这次分享的朋友都是在工作开发层面上面临着一些问题.此次分享我们先抛开Vue - router和Vuex,很多朋友都觉得Vuex和router比较难,大错特错! 对Vue 2.0的介绍 我对Vue 2.0认知,能it前端框架的认知,在我们不算底层原理的情况下,什么才是精髓,那就是基础的方法和一些api介

  • vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)

    前言 大家都知道在Vue中,我们平时数据驱动视图时候,内部自带的指令有时候解决不了一些需求,这时候,Vue给我们一个很好用的东东来实现自定义指令,这就是directive.下面话不多说了,来一起看看详细的介绍: directive 这个单词是我们写自定义指令的关键字哦 自定义指令为我们提供了几个钩子函数,这时候你一定好奇什么是钩子函数,说简单点,就是集中表现状态 bind: 只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作. inserted: 被绑

  • vue.js提交按钮时进行简单的if判断表达式详解

    前言 本文主要介绍的是vue.js提交按钮时进行简单的if判断表达式的相关内容,分享出来供大家参考学习,是一个简单的业务需求,下面话不多说了,看图说话 1:当充值金额没有填写的时候,会有Toast小弹框提示"请输入有效的充值金额" if (!this.money) { console.log('money',money); Toast({ message: '请输入有效的充值金额', duration: 2000 }); } 2:当第二个框实收金额没有填写的时候,会有Toast小弹框提

  • vue+element实现下拉菜单并带本地搜索功能示例详解

    需求: 后台返回数组对像,前端组合成数组,根据name组合成一个个数组并把后台返回的值当成一个children推入数组,在数组中自定义属性备份数据防止搜索的时候改变原数组使得数组无法回退 这里是用的vuex存储,因为多个页面使用同一个接口;所以没必要重复请请求 src\store\module\metadata.js /* * @Author: your name * @Date: 2021-09-02 15:46:45 * @LastEditTime: 2021-09-16 17:39:53

  • Vue使用axios发送请求并实现简单封装的示例详解

    目录 一.安装axios 二.简单使用 1.配置 2.发送请求 三.封装使用 1.创建js封装类 2.配置 3.发送请求 一.安装axios npm install axios --save 二.简单使用 1.配置 main.js中加入如下内容 // 引入axios --------------------------------------------------- import axios from 'axios' Vue.prototype.$axios = axios Vue.proto

  • vue中Axios的封装和API接口的管理示例详解

    目录 一.axios的封装 安装 引入 环境的切换 设置请求超时 post请求头的设置 请求拦截 响应的拦截 封装get方法和post方法 axios的封装基本就完成了,下面再简单说下api的统一管理. 2018.8.14更新 我们所要的说的axios的封装和api接口的统一管理,其实主要目的就是在帮助我们简化代码和利于后期的更新维护. 一.axios的封装 在vue项目中,和后台交互获取数据这块,我们通常使用的是axios库,它是基于promise的http库,可运行在浏览器端和node.js

  • JS中DOM元素的attribute与property属性示例详解

    一.'表亲戚':attribute和property 为什么称attribute和property为'表亲戚'呢?因为他们既有共同处,也有不同点. attribute 是 dom 元素在文档中作为 html 标签拥有的属性: property 是 dom 元素在 js 中作为对象拥有的属性. 从定义上可以看出: 对于 html 的标准属性来说,attribute 和 property 是同步的,是会自动更新的 但是对于自定义的属性来说,他们是不同步的.(自定义属性不会自动添加到property)

  • js中复选框的取值及赋值示例详解

    1.复选框的取值:(js部分) var checkboxdata = $("input[name=payoperator]:checked").map(function() { return $(this).val(); }).get().join(","); <div class="form-group"> <label class="col-lg-2 col-md-2 col-sm-12 control-label

随机推荐