• 技术文章 >web前端 >Vue.js

    Vue中什么是修饰符?常见的修饰符总结

    青灯夜游青灯夜游2022-10-10 19:28:11转载340
    本篇文章带大家简单了解一下Vue中的修饰符,总结一些常见的修饰符和写法,希望对大家有所帮助。

    大前端零基础入门到就业:进入学习

    一、修饰符是什么

    Vue中,修饰符处理了许多DOM事件的细节,让我们不再需要花大量的时间去处理这些烦恼的事情,而能有更多的精力专注于程序的逻辑处理。【相关推荐:vuejs视频教程

    vue中修饰符分为以下五种:

    二、常见的修饰符

    2.1 表单修饰符

    在我们填写表单的时候用得最多的是input标签,指令用得最多的是v-model

    关于表单的修饰符有如下:

    1. lazy

    默认情况下,v-model 会在每次 input 事件后更新数据。你可以添加 lazy 修饰符来改为在每次 change 事件后更新数据:

    <input type="text" v-model.lazy="value">
    <p>{{value}}</p>

    2. trim

    如果你想要默认自动去除用户输入内容中两端的空格,你可以在 v-model 后添加 .trim 修饰符:

    <input type="text" v-model.trim="value">

    3. number

    如果你想让用户输入自动转换为数字,你可以在 v-model 后添加 .number 修饰符来管理输入:

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

    2.2 事件修饰符

    事件修饰符是对事件捕获以及目标进行了处理,有如下修饰符:

    1. stop

    阻止了事件冒泡,相当于调用了event.stopPropagation方法,单击事件将停止传递

    <div @click="shout(2)">
        <button @click.stop="shout(1)">ok</button> 
    </div> 
    //只输出1

    2. prevent

    阻止了事件的默认行为,相当于调用了event.preventDefault方法,提交事件将不再重新加载页面

    <form @submit.prevent="onSubmit"></form>

    3. self

    仅当 event.target 是元素本身时才会触发事件处理器,例如:事件处理器不来自子元素

    <div v-on:click.self="doThat">...</div>

    使用修饰符时需要注意调用顺序,因为相关代码是以相同的顺序生成的。因此使用 @click.prevent.self 会阻止元素及其子元素的所有点击事件的默认行为@click.self.prevent 则只会阻止对元素本身的点击事件的默认行为。

    4. once

    绑定了事件以后只能触发一次,第二次就不会触发

    <button @click.once="shout(1)">ok</button>

    5. capture

    添加事件监听器时,使用 capture 捕获模式,例如:指向内部元素的事件,在被内部元素处理前,先被外部处理。使事件触发从包含这个元素的顶层开始往下触发

    <div @click.capture="shout(1)">
        obj1
    <div @click.capture="shout(2)">
        obj2
    <div @click="shout(3)">
        obj3
    <div @click="shout(4)">
        obj4
    </div>
    </div>
    </div>
    </div>
    // 输出结构: 1 2 4 3

    6. passive

    在移动端,当我们在监听元素滚动事件的时候,会一直触发onscroll事件会让我们的网页变卡,因此我们使用这个修饰符的时候,相当于给onscroll事件整了一个.lazy修饰符。

    滚动事件的默认行为 (scrolling) 将立即发生而非等待 onScroll 完成,以防其中包含 event.preventDefault()

    <!-- 滚动事件的默认行为 (即滚动行为) 将会立即触发 -->
    <!-- 而不会等待 `onScroll` 完成  -->
    <!-- 这其中包含 `event.preventDefault()` 的情况 -->
    <div v-on:scroll.passive="onScroll">...</div>

    .passive 修饰符一般用于触摸事件的监听器,可以用来改善移动端设备的滚屏性能

    请勿同时使用 .passive.prevent,因为 .passive 已经向浏览器表明了你不想阻止事件的默认行为。如果你这么做了,则 .prevent 会被忽略,并且浏览器会抛出警告。

    7. native

    让组件变成像html内置标签那样监听根元素的原生事件,否则组件上使用 v-on 只会监听自定义事件

    <my-component v-on:click.native="doSomething"></my-component>

    使用.native修饰符来操作普通HTML标签是会令事件失效的

    2.3 鼠标按钮修饰符

    鼠标按钮修饰符针对的就是左键、右键、中键点击,有如下:

    <button @click.left="shout(1)">ok</button>
    <button @click.right="shout(1)">ok</button>
    <button @click.middle="shout(1)">ok</button>

    2.4 键盘修饰符

    键盘修饰符是用来修饰键盘事件(onkeyuponkeydown)的,有如下:

    keyCode存在很多,但vue为我们提供了别名,分为以下两种:

    // 只有按键为keyCode的时候才触发 
    <input type="text" @keyup.keyCode="shout()">

    2.5 v-bind修饰符

    v-bind修饰符主要是为属性进行操作,用来分别有如下:

    1. async

    能对props进行一个双向绑定

    //父组件
    <comp :myMessage.sync="bar"></comp> 
    //子组件
    this.$emit('update:myMessage',params);

    以上这种方法相当于以下的简写

    //父亲组件
    <comp :myMessage="bar" @update:myMessage="func"></comp>
    func(e){
     this.bar = e;
    }
    //子组件js
    func2(){
      this.$emit('update:myMessage',params);
    }

    使用async需要注意以下两点:

    2. props

    设置自定义标签属性,避免暴露数据,防止污染HTML结构

    <input id="uid" title="title1" value="1" :index.prop="index">

    3. camel

    将命名变为驼峰命名法,如将 view-Box属性名转换为 viewBox

    <svg :viewBox="viewBox"></svg>

    三、应用场景

    根据每一个修饰符的功能,我们可以得到以下修饰符的应用场景:

    (学习视频分享:web前端开发编程基础视频

    以上就是Vue中什么是修饰符?常见的修饰符总结的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:掘金社区,如有侵犯,请联系admin@php.cn删除

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    快捷开发Web应用及小程序:点击使用

    支持亿级表,高并发,自动生成可视化后台。

    专题推荐:Vue vue3 vue.js
    上一篇:聊聊怎么利用vite插件实现骨架屏自动化 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 如何监听Vue的插槽变化?试试这一招!• Vue如何实现拖拽穿梭框功能?四种方式分享(附代码)• 一文搞懂Vue Diff算法• 手把手教你使用webpack实现vue-cli• Vue计算属性与侦听器和过滤器超详细介绍
    1/1

    PHP中文网