iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Vue事件的基本操作有哪些
  • 412
分享到

Vue事件的基本操作有哪些

2023-06-29 07:06:16 412人浏览 泡泡鱼
摘要

小编给大家分享一下Vue事件的基本操作有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. 事件的基本操作1.1 v-on功能:绑定指定事件名的回调函数标准写

小编给大家分享一下Vue事件的基本操作有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

    1. 事件的基本操作

    1.1 v-on

    功能:绑定指定事件名的回调函数

    标准写法:v-on:click='xxx'v-on:keyup='xxx(参数)'v-on:keyup.enter='xxx'简便写法:@click='xxx'@keyup='xxx'@keyup.enter='xxx'
    1.1.1 v-on的小案例
     <div id="root">        <!-- 需求当点击按钮时弹出同学你好! -->        <h2>欢迎来到{{name}}学习</h2>        <!--   v-on:xxx可以简写为: @xxx   -->        <button v-on:click="btn1">点击我进行学习(不传参)</button>         <button @click="btn2('hello!','同学',$event)">点击我进行学习(传参)//如果需要传参数的话就在后面加(),里面写的就参数    </div>    <script>                Vue.config.productionTip = false        var vm = new Vue({            el: '#root',            data: {                name: "清华大学"            },            methods: {                btn1() {                    alert("同学你好!")                },                btn2(x, y, event) {                    console.log(x, y);                    console.log(event.target.innerText);                    alert("同学你好!")                }            }        })    </script>

    1.2 事件修饰符

     Vue中的事件修饰符有6个            - prevent : 阻止默认行为            - stop : 禁止冒泡            - once : 事件只触发一次            - capture : 使用事件捕获模式            - self : 只有even.target所指向的操作元素才能触发事件            - passive : 让事件的默认行为立即执行<body>    <div id="root">        <!-- 1. prevent : 阻止默认行为 -->        <a href="https://www.bilibili.com/" @click.prevent = "prevent">点击我进入b站</a>        <hr>        <!-- 2. stop : 禁止冒泡 -->        <div @click = "stop" class="div1">            <button @click.stop = "stop">点击我触发事件</button>        </div>        <hr>        <!-- 3. once : 事件只触发一次 -->        <button @click.once = "once">我只能触发一次哦</button>        <hr>        <!-- 4. capture : 使用事件捕获模式 -->        <div class="box1" @click.capture = "capture(1)">            div1            <div class="box2" @click = "capture(2)">                div2            </div>        </div>        <hr>        <!-- 5. self : 只有even.target所指向的操作元素才能触发事件                 相当于要满足两个条件                    - 1. event.target必须指向self所修饰的元素                    - 2. 触发的也必须是这个元素                    从某种意义上相当于禁止了冒泡,因为冒泡虽然触发上面事件                    但是event.target所指向的并非是这个元素        -->        <div class="box3" @click.self = "self">            <button @click = "self">点击我</button>        </div>        <hr>        <!-- 6. passive : 让事件的默认行为立即执行             scroll:表示的是滚动条进行滚动,滚动条改变就触发,并且滑到底就不能继续触发            wheel :表示的是鼠标滚轮滚动,滚动一次就触发一次,滑到底依旧可以触发        -->        <ul  @scroll.passive = "passive">            <li ></li>        </ul>          <!-- 7. 如果想要使用多个修饰符可以使用链式形式 -->          <!-- 需要即想要阻止冒泡,也想要禁止默认行为 -->        <div @click = "stop" class="div1">            <a @click.stop.prevent = "stop" href="Https://www.baidu.com">点击我进入</a>        </div>    </div>
    1.2.1 事件修饰符代码解析

    html代码

    <body>    <div id="root">        <!-- 1. prevent : 阻止默认行为 -->        <a href="https://www.bilibili.com/" @click.prevent = "prevent">点击我进入b站</a>        <hr>        <!-- 2. stop : 禁止冒泡 -->        <div @click = "stop" class="div1">            <button @click.stop = "stop">点击我触发事件</button>        </div>        <hr>        <!-- 3. once : 事件只触发一次 -->        <button @click.once = "once">我只能触发一次哦</button>        <hr>        <!-- 4. capture : 使用事件捕获模式 -->        <div class="box1" @click.capture = "capture(1)">            div1            <div class="box2" @click = "capture(2)">                div2            </div>        </div>        <hr>        <!-- 5. self : 只有even.target所指向的操作元素才能触发事件                 相当于要满足两个条件                    - 1. event.target必须指向self所修饰的元素                    - 2. 触发的也必须是这个元素                    从某种意义上相当于禁止了冒泡,因为冒泡虽然触发上面事件                    但是event.target所指向的并非是这个元素        -->        <div class="box3" @click.self = "self">            <button @click = "self">点击我</button>        </div>        <hr>        <!-- 6. passive : 让事件的默认行为立即执行             scroll:表示的是滚动条进行滚动,滚动条改变就触发,并且滑到底就不能继续触发            wheel :表示的是鼠标滚轮滚动,滚动一次就触发一次,滑到底依旧可以触发        -->        <ul  @scroll.passive = "passive">            <li ></li>        </ul>          <!-- 7. 如果想要使用多个修饰符可以使用链式形式 -->          <!-- 需要即想要阻止冒泡,也想要禁止默认行为 -->        <div @click = "stop" class="div1">            <a @click.stop.prevent = "stop" href="https://www.baidu.com">点击我进入</a>        </div>    </div>

    js代码

     <script>        Vue.config.productionTip = false        new Vue({            el: '#root',            data: {            },            methods:{                prevent(){                    alert("禁止默认行为");                },                stop(){                    alert("禁止冒泡")                },                once(){                    alert("只能触发一次")                },                capture(x){                    alert("现在是捕获模式  "+x)                },                self()                {                    alert("self")                },                passive(){                    for (let index = 0; index < 1000; index++) {                        console.log("1")                    }                }            }        })    </script></body>

    1.3 键盘事件

    常用的按键别名:1.正常使用      例如: @keyup.enter = "xxx" - 回车   enter            - 删除   delete            - 退出   esc            - 空格   space            - 上     up            - 下     down            - 左     left            - 右     right       2. 特别的按键       系统修饰键 :            - ctrl,shift,alt,meta(就是window键)            - 换行   tab(必须配合keydown去使用)            - 配合keyup使用,当按下修饰键的时候在按下其他的键,然后在松开其他键事件才可以被触发            - 配合keydown使用,就直接触发事件       3.如果想要绑定其他按键,可以使用按键原始本身的key值(名字)去绑定       4.可以自定义去设置按键别名,Vue.config.keyCodes.自定义键名 = 键值

    具体案例

     <div id="root">        <h2>欢迎学习{{name}}</h2>        <input type="text" @keyup="keyboard">        <br><br>        <input type="text" @keyup.huiche="keyboard">        <br><br>        <input type="text" @keyup.ctrl.y="keyboard">    </div>    <script>        Vue.config.productionTip = false        Vue.config.keyCodes.huiche = 13  //定义了一个别名        var vm = new Vue({            el: '#root',            data: {                name: "Vue"            },            methods:            {                keyboard(event){                    // console.log(event.keyCode);   按键编码                    // console.log(event.key);      按键的名字                    console.log(event.target.value);                }            }        })    </script>

    1.4 计算属性(computed)

    在页面中的使用方法:=={{方法名}}==来显示计算结果

    定义:要使用的属性/变量不存在,需要通过已有的属性计算出来的

    原理:底层是借助了Object.defineProperty方法所提供的getter和setter

    get函数执行的时机:

    (1)初次读取的时候会执行一次

    (2)当所依赖的数据发生改变时就会再次被调用

    相比于methods的优势,内部是有缓存机制(复用),效率会更高,调试会更方便

    如果计算属性要被修改,那必须写set函数去响应修改,且set中要引起计算时依赖的数据发生改变

    需要注意的一个特殊点:以下面例子举例:get函数中return返回值的会作为fullname的值进行返回,在控制台可以看到是这样的形式呈现fullname:xxx

    computed中的this指向是vm

    简写形式: 基本要求就是在不使用set的情况下才可以简写 注意在调用的时候不要写成fullname()

    <div id="root">        姓: <input type="text" v-model="firstname">        <br><br>        名: <input type="text" v-model="lastname">        <!-- 第一种写法 使用插值语法 -->        <!-- <h4>全名: {{firstname.slice(0,3)}} - {{lastname}}</h4> -->        <!-- 第二种写法 使用methods -->        <!-- <h4>全名: {{fullname()}}</h4> -->        <!-- 第三种写法 使用computed(计算属性) -->        <h4>全名:{{fullname}}</h4>    </div>    <script>        Vue.config.productionTip = false        let vm = new Vue({            el: '#root',            data: { //属性                firstname: "张",                lastname: "三",            },            // methods:            // {            //     fullname() {            //         // 这里的this指向是vm            //         return this.firstname.slice(0,3) + "-" + this.lastname            //     }            // }            computed: {                fullname: {                                 get() {                        return this.firstname + "-" + this.lastname                    },                    set(value) {                                          // 当fullname被修改时,set才会被调用                        var arr = value.split("-") //按照指定字符串进行拆分成数组                        this.firstname = arr[0]                        this.lastname = arr[1]                    }                                    }            }        })    </script>

    1.5 监视属性(watch)

    当所监视的属性发生变化时,回调函数自动调用,进行相关的操作

    监视属性必须要存在,才能进行监视

    3.监视属性的两种写法:

    (1)在new Vue中配置watch

    (2)通过vm.$watch进行监视

    watch里handler函数this的指向是vm

    <div id="root">        <h2>今天天气真{{weather}}</h2>        <button @click="change">切换天气</button>         <h4>a的值是: {{a}}</h4>        <!-- 在这里面可以写简单的代码 -->        <button @click = "a++">点击我让a+1</button>    </div>    <script>        Vue.config.productionTip = false        let vm = new Vue({            el: '#root',            data: {                flag: true            },            computed: {                weather() {                    return this.flag ? "凉快" : "炎热"                }            },            methods: {                change() {                    return this.flag = !this.flag                }            },            watch:{                  flag:{                  // 第一个参数表示:修改后的值,第二个参数表示修改前的值                   handler(newValue,oldValue){                    console.log("flag被修改了");                   },                   immediate:true, //在一上来就执行一次                  deep:true  //表示深层次监视               }            }        })        vm.$watch("weather",{            immediate:true,            handler(newValue,oldValue){                console.log("weather被修改了")            }        })
    1.5.1 watch和computed的区别

    watch和computed的区别是:

    watch能够完成的功能,computed不一定可以完成,但是computed可以完成的,watch也可以完成

    computed是依靠return的返回值(getter),所以它不能够完成异步的任务,而watch可以

    watch是靠我们自己写代码进行修改

    在学Vue当中有两个很重要的原则:

    • 所有被Vue管理的函数,最好写成普通的函数,因为这样this的指向才是vue或者组件的实例化对象

    • 所有不被Vue管理的函数,最好写成箭头函数(ajax的回调函数,定时器的回调函数,Promise的回调函数),因为这样this的指向才是vue或者组件的实例化对象

     <div id="root">        <!-- 用watch写一遍姓名的案例 -->        姓: <input type="text" v-model="firstname">        <br><br>        名: <input type="text" v-model="lastname">        <h3>全名: {{fullname}}</h3>    </div>    <script >        // 需求:想要1s过后在显示全名        Vue.config.productionTip = false        let vm = new Vue({            el: '#root',            data: {                firstname: "张",                lastname: "三",                fullname: "张 - 三"            },            watch: {                firstname: {                    handler(newval) {                        console.log(this); //vm                                               setTimeout(() => { //这里如果使用普通函数this就指向window                        console.log(this);  //vm                        this.fullname = newval + " - " + this.lastname                       }, 1000);                    }                },                lastname: {                    handler(newval) {                        setTimeout(() => {                        this.fullname = this.firstname + " - " + newval                        }, 1000);                    }                }            }        })    </script>

    以上是“Vue事件的基本操作有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

    --结束END--

    本文标题: Vue事件的基本操作有哪些

    本文链接: https://www.lsjlt.com/news/323389.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Vue事件的基本操作有哪些
      小编给大家分享一下Vue事件的基本操作有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. 事件的基本操作1.1 v-on功能:绑定指定事件名的回调函数标准写...
      99+
      2023-06-29
    • Vue事件的基本操作你知道吗
      目录1.事件的基本操作1.1v-on1.1.1v-on的小案例1.2事件修饰符1.2.1事件修饰符代码解析1.3键盘事件1.4计算属性(computed)1.5监视属性(watch)...
      99+
      2024-04-02
    • MySQL的基本操作有哪些
      这篇文章主要介绍了MySQL的基本操作有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL的基本操作有哪些文章都会有所收获,下面我们一起来看看吧。1. pymysql的基本操作# ###&n...
      99+
      2023-06-28
    • MySQL基本操作有哪些
      这篇文章主要介绍“MySQL基本操作有哪些”,在日常操作中,相信很多人在MySQL基本操作有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL基本操作有哪些”的疑惑...
      99+
      2022-12-05
      mysql
    • jspXCMS基本操作有哪些
      这篇文章主要介绍“jspXCMS基本操作有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“jspXCMS基本操作有哪些”文章能帮助大家解决问题。后台登录登录地址:/cmscp/index.do。如...
      99+
      2023-06-26
    • Git基本操作有哪些
      这篇文章将为大家详细讲解有关Git基本操作有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。git 是一个版本管理工具,是可以在你电脑不联网的情况下,只在本地使用的一个版本管理工具,其作用就是可以让你更...
      99+
      2023-06-27
    • python3的os基本操作有哪些
      本篇内容主要讲解“python3的os基本操作有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python3的os基本操作有哪些”吧!  import os  # 获取当前的工作目录  pr...
      99+
      2023-06-02
    • Git的基本操作命令有哪些
      本篇内容主要讲解“Git的基本操作命令有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Git的基本操作命令有哪些”吧!Git 基本操作Git 的工作就是创建和保存你项目的快照及与之后的快照进...
      99+
      2023-06-17
    • LINQ基本操作的方法有哪些
      这篇文章主要讲解了“LINQ基本操作的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“LINQ基本操作的方法有哪些”吧!LINQ基本操作学习1.我首先创建一个表,名字为:userin...
      99+
      2023-06-17
    • Jspxcms用户的基本操作有哪些
      这篇文章主要讲解了“Jspxcms用户的基本操作有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Jspxcms用户的基本操作有哪些”吧!第1章系统概述第2章基本操作2.1后台登录登录地址...
      99+
      2023-06-26
    • Java数组的基本操作有哪些
      这篇“Java数组的基本操作有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java数组的基本操作有哪些”文章吧。一、为...
      99+
      2023-06-29
    • win10的基本操作技巧有哪些
      这篇文章主要介绍了win10的基本操作技巧有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇win10的基本操作技巧有哪些文章都会有所收获,下面我们一起来看看吧。win10基本操作技巧:一、如何调整开始菜单中...
      99+
      2023-07-01
    • Docker的基本操作方法有哪些
      这篇文章主要讲解了“Docker的基本操作方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Docker的基本操作方法有哪些”吧!安装Dockerroot@jaking-virtual...
      99+
      2023-06-27
    • MySQL基本语句操作有哪些
      这篇文章主要介绍了MySQL基本语句操作有哪些,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。数据库操作语句创建create database 数...
      99+
      2024-04-02
    • 基本DOM节点操作有哪些
      这篇文章主要介绍了基本DOM节点操作有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、获取元素节点getElementById():获...
      99+
      2024-04-02
    • ElasticSearch基本操作方法有哪些
      这篇文章主要讲解了“ElasticSearch基本操作方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ElasticSearch基本操作方法有哪些”吧!索引创建索引  对比...
      99+
      2023-07-04
    • Apache服务器的基本操作有哪些
      这篇文章主要介绍“Apache服务器的基本操作有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Apache服务器的基本操作有哪些”文章能帮助大家解决问题。Apache服务器的安装一般情况下,Ap...
      99+
      2023-06-27
    • 电脑的基本操作知识有哪些
      本文小编为大家详细介绍“电脑的基本操作知识有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“电脑的基本操作知识有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。电脑的基本操作知识有哪些首先掌握电脑开、关机方...
      99+
      2023-07-01
    • jquery对元素的基本操作有哪些
      这篇文章主要介绍“jquery对元素的基本操作有哪些”,在日常操作中,相信很多人在jquery对元素的基本操作有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jquery...
      99+
      2024-04-02
    • Linux软件包管理的基本入门操作有哪些
      本篇文章给大家分享的是有关Linux软件包管理的基本入门操作有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。大多数现代类 Unix 的操作系统都提供了一个集中的软件包管理机...
      99+
      2023-06-16
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作