Vue Template 修饰符和简写,让开发效率有所提高

更新日期: 2020-02-17阅读: 1.9k标签: 修饰符

vue 是一个易于使用的Web应用程序框架,可用于开发交互式前端应用程序。在本文中,我们将介绍指令的修饰符和一些有用的模板简写指令。


修饰符

修饰符用于以特殊方式绑定指令。

事件修饰符

例如,v-on指令的.prevent修饰符将在设置为该值的事件处理函数上自动运行event.preventDefault。

.prevent修饰符用法如下:

<form v-on:submit.prevent="onSubmit"> ... </form>

这样,当运行onSubmit事件之前就会运行event.preventDefault()。

其他事件修饰符包括:

  • .stop
  • .capture
  • .self
  • .once
  • .passive

.stop在运行其余事件处理程序代码之前运行event.stopPropagation()。

.capture让我们捕获事件。 也就是说,当我们在内部元素中运行事件处理程序时,相同的事件处理程序也将在外部元素中运行。

例如,假设 src/index.js中的内容为:

 var vm=new Vue({
    el:"#app",
    data:{
        
    },
    methods:{
        show:function(){
            console.log("这是app的方法")
        },
        show2:function(){
            console.log("这是app2的方法")
        },
        show3:function(){
            console.log("这是app3的方法")
        }
    }
})

以及index.html中内容为:

<div id="app" v-on:click="show">
    1
    <div id="app2" v-on:click.capture="show2">
        2
        <div id="app3" v-on:click="show3">
            3
            
        </div>
    </div>
</div>

此处的代码因为div2有capture关键字,所以此时冒泡的顺序发生了改变

正常情况下:

点击div3一层一层冒泡,先div3=》div2=》div1

使用了关键字:

点击div3时,先div2=》div3=》div1

就是说只要存在一个capture关键字,就会影响整个嵌套的执行

.self 修饰符的作用是:只当在 event.target 是当前元素自身时触发处理函数,即事件不是从内部元素触发的 。

.once 修饰符的作用是:点击事件将只会触发一次

passive 作用

  详情请参考MDN(https://developer.mozilla.org...)中关于addEventListener中的第三个参数;表示 listener 永远不会调用 preventDefault()。如果 listener 仍然调用了这个函数,客户端将会忽略它并抛出一个控制台警告。

passive这个修饰符会执行默认方法。你们可能会问,明明默认执行为什么会设置这样一个修饰符。这就要说一下这个修饰符的本意了。

浏览器只有等内核线程执行到事件监听器对应的 JS 代码时,才能知道内部是否会调用preventDefault函数来阻止事件的默认行为,所以浏览器本身是没有办法对这种场景进行优化的。这种场景下,用户的手势事件无法快速产生,会导致页面无法快速执行滑动逻辑,从而让用户感觉到页面卡顿。

通俗点说就是每次事件产生,浏览器都会去查询一下是否有preventDefault阻止该次事件的默认动作。我们加上passive就是为了告诉浏览器,不用查询了,我们没用preventDefault阻止默认动作。

这里一般用在滚动监听,@scoll,@touchmove 。因为滚动监听过程中,移动每个像素都会产生一次事件,每次都使用内核线程查询prevent会使滑动卡顿。我们通过passive将内核线程查询跳过,可以大大提升滑动的流畅度。

注:passive和prevent冲突,不能同时绑定在一个监听器上。

v-model 修饰符

v-model 主要有三个修饰符:

  • .lazy
  • .number
  • .trim

.lazy修饰符

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

添加了lazy后,输入框中的数据会在change事件中同步,不会随着输入同时同步。

.number修饰符

首先谁明这个number并不是限制用户的输入,而是将用户输入的数据尝试绑定为 js 中的 number 类型

举个例子,如果用户输入300,data 中绑定的其实是'300'(string),添加 number 指令后可以得到 300(number)的绑定结果。而如果用户输入的不是数字,这个指令并不会产生任何效果。

.trim修饰符

trim可以用来过滤前后的空格


指令简写

Vue 中的一些指令可以简写。

v-bind

我们可以将v-bind简写为:,例如:

<a v-bind:href="url">Link</a>

可以写成

<a :href="url">Link</a>

如果使用Vue 2.6.0或更高版本,我们还可以使用动态参数:

<a :[key]="url">Link</a>

v-on

我们可以将v-on简写为@,例如:

<a v-on:click="onClick">Click me</a>

可以写成

<a @click="onClick">Click me</a>

同样,从Vue 2.6.0开始,我们也可以使用动态参数:

<a @[event]="onClick">Click me</a>


总结

一些指令具有与它们关联的修饰符。v-on指令具有多个修饰符,用于控制事件处理程序的调用方式。

另外,v-model指令也具有一些修饰符,可让我们将输入自动转换为数字或修剪输入中的空格。

v-on和v-bind也有简写形式。 v-on:可以简写为@,而v-bind:可以缩写为:。

指令参数也可以使用简写。

原文:https://www.websystemer.no  


链接: https://www.fly63.com/article/detial/8263

vue 监听组件原生事件_使用vue中的修饰符.native

.native主要用于监听组件根元素的原生事件,主要是给自定义的组件添加原生事件。官方对.native修饰符的解释为:有时候,你可能想在某个组件的根元素上监听一个原生事件。可以使用 v-on 的修饰符 .native 。

vue事件修饰符

在默认情况下,v-model 在每次 input 事件触发后将输入框的值与数据进行同步 。你可以添加 lazy 修饰符,从而转变为使用 change事件进行同步;如果要自动过滤用户输入的首尾空白字符,可以给 v-model 添加 trim 修饰符:

vue中的事件修饰符(.stop、.prevent、.self、.capture、.once)

使用.stop阻止事件的冒泡行为。使用.prevent阻止事件的默认行为。使用.self实现只有点击当前元素才会触发事件处理函数。使用.capture实现捕获触发事件的机制,即从外部事件开始执行。使用.once实现事件的触发次数为一次。

JavaScript 私有类字段和 TypeScript 私有修饰符

在本文中,我们将对 JavaScript 私有类字段进行一些说明,并了解它们与 TypeScript 私有修饰符的区别。在过去,JavaScript 没有保护变量不受访问的原生机制,当然除非是典型闭包。

Vue这些修饰符帮我节省20%的开发时间

为了方便大家写代码,vue.js给大家提供了很多方便的修饰符,比如我们经常用到的取消冒泡,阻止默认事件等等~填写表单,最常用的是什么?

Vue 的 .sync 修饰符

.sync 修饰符算是 Vue 的所有修饰符中较难理解的一个,本篇文章就带你走近 .sync 的世界,深入理解后会发现,其实也就那么回事。修饰符和指令息息相关,下面从 指令 -> 修饰符 -> .sync 修饰符 由浅入深地来讲解 .sync 的含义及用法。

Vue事件修饰符的使用

如果需要在内联语句处理器中访问原生DOM事件。可以使用特殊变量$event,把它传入到methods中的方法中。在Vue中,事件修饰符处理了许多DOM事件的细节,让我们不再需要花大量的时间去处理这些烦恼的事情,而能有更多的精力专注于程序的逻辑处理

面试官最喜欢问的 14 种Vue修饰符

修饰符也是Vue的重要组成成分之一,利用好修饰符可以大大地提高开发的效率,接下来给大家介绍一下面试官最喜欢问的13种Vue修饰符。lazy修饰符作用是,改变输入框的值时value不会改变

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!