vue的事件绑定和修饰符

news2024/11/17 23:25:02

😀前言
本片文章是vue系列第3篇整理了vue的事件绑定和修饰符以及注意事项和代码演示

🏠个人主页:尘觉主页
在这里插入图片描述

🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力😉😉

在csdn获奖荣誉: 🏆csdn城市之星1名
⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 💓Java全栈群星计划top前5
⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ ⁣⁣⁣⁣ 🤗 端午大礼包获得者

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
如果文章有什么需要改进的地方还请大佬不吝赐教 先在次感谢啦😊

文章目录

  • 💫vue的事件绑定和修饰符
    • 🥰事件绑定
      • 基本说明
      • 💖应用实例
      • ⚡注意事项
      • 💞代码示例-使用常规方法和表达式形式点击按钮, 次数联动变化
      • 💫演示绑定操作
      • 🍤注意
    • 🔥修饰符
      • 基本说明
      • ❄应用实例
        • vue_modifier.html
        • 🪄完成测试
      • 扩展一下
    • 😄总结

💫vue的事件绑定和修饰符

在这里插入图片描述

🥰事件绑定

基本说明

1 使用 v-on 进行事件处理,比如: v-on:click 表示处理鼠标点击事件

2 事件调用的方法定义在 vue 对象声明的 methods 节点中

3 v-on:事件名 可以绑定指定事件

4 官方文档:https://cn.vuejs.org/v2/guide/events.html

💖应用实例

需求: 演示 Vue 事件绑定操作
在这里插入图片描述

  1. 是一个methods属性, 对应的值是对象{}

  2. 在{} 中, 可以写很多的方法, 你可以这里理解是一个方法池

  3. 这里需要小伙伴有js的基础=>我的博客对应的js博客的文章

<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>事件处理</title>
</head>
<body>
<!--视图-->
<div id="app">
    <h1>{{message}}</h1>
    <!--解读
    1. v-on:click 表示我们要给button元素绑定一个click的事件
    2. sayHi() 表示绑定的方法, 在方法池 methods{} 定义的
    3. 底层仍然是dom处理
    4. 如果方法不需要传递参数,可以省略()
    5. v-on:click可以简写@, 但是需要浏览器支持
    -->
    <button v-on:click="sayHi()">点击输出</button>
    <button v-on:click="sayOk()">点击输出</button>

    <button v-on:click="sayHi">点击输出</button>
    <button @click="sayOk">点击输出</button>
</div>
<!--引入我们的vue.js-->
<script src="vue.js"></script>
<!--创建一个vue实例,并挂载到id=app的div-->
<script>
    //说明:这里创建的Vue实例, 你可以不去接收, 也可以接收
    //方便我们调试信息
    let vm = new Vue({
        el: "#app", //创建的vue实例挂载到 id=app的div, el 就是element的简写
        data: { //data{} 表示数据池(model中的数据), 有很多数据 ,以k-v形式设置(根据业务需要来设置)
            message: "Vue事件处理的案例",
            name: "大家好"
        },
        //解读:
        // 1. 是一个methods属性, 对应的值是对象{}
        // 2. 在{} 中, 可以写很多的方法, 你可以这里理解是一个方法池
        // 3. 这里需要小伙伴有js的基础=>我的博客对应的js博客的文章
        methods: {
            sayHi() {
                console.log("hi, 银角大王~");
            },
            sayOk() {
                console.log("ok, 金角大王~");
            }
        }
    })
</script>
</body>
</html>

⚡注意事项

  1. v-on:click 表示我们要给button元素绑定一个click的事件
  2. sayHi() 表示绑定的方法, 在方法池 methods{} 定义的
  3. 底层仍然是dom处理
  4. 如果方法不需要传递参数,可以省略()
  5. v-on:click可以简写@, 但是需要浏览器支持

在这里插入图片描述

💞代码示例-使用常规方法和表达式形式点击按钮, 次数联动变化

  1. 这里count += 2 的count数据是data数据池的count
  2. 重点是掌握和理解机制
<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>次数联动变化</title>
</head>
<body>
<div id="app">
    <h1>{{message}}</h1>
    <button v-on:click="add">点击增加+1</button>

    <!--解读
    1. 这里count += 2 的count数据是data数据池的count
    2. 重点是掌握和理解机制
    -->

    <button v-on:click="count += 2">点击增加+2</button>

    <p>你的按钮被点击了{{count}}次</p>

</div>
<script src="vue.js"></script>

<!--创建一个vue实例,并挂载到id=app的div-->

<script>
    let vm = new Vue({
        el: "#app", //创建的vue实例挂载到 id=app的div, el 就是element的简写
        data: { //data{} 表示数据池(model中的数据), 有很多数据 ,以k-v形式设置(根据业务需要来设置)
            message: "Vue事件处理的作业",
            count: 0//点击的次数
        },
        methods: {
            add() {
                //修改data数据池的count
                //因为data和methods在同一个vue实例中,因此可以通过this.数据方式访问
                this.count += 1;
            }
        }
    })
</script>
</body>
</html>

修改data数据池的count
因为data和methods在同一个vue实例中,因此可以通过this.数据方式访问

💫演示绑定操作

<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>演示绑定操作</title>
</head>
<body>
<div id="app">
    <h1>{{message}}</h1>
    请输入书名: <input type="text" v-model="bookName">
    <button v-on:click="show">点击显示书名~</button>
</div>
<script src="vue.js"></script>
<!--创建一个vue实例,并挂载到id=app的div-->
<script>
    let vm = new Vue({
        el: "#app", //创建的vue实例挂载到 id=app的div, el 就是element的简写
        data: { //data{} 表示数据池(model中的数据), 有很多数据 ,以k-v形式设置(根据业务需要来设置)
            message: "Vue事件处理的作业",
            bookName: "天龙八部"
        },
        methods: {
            show() {
                //提醒,如果你要访问当前Vue实例的数据池的数据, 需要this
                //否则,会报错ReferenceError: bookName is not defined
                alert("你输入的书名是:" + this.bookName)
            }
        }
    })
</script>
</body>
</html>

🍤注意

提醒,如果你要访问当前Vue实例的数据池的数据, 需要this
否则,会报错ReferenceError: bookName is not defined

🔥修饰符

在这里插入图片描述

基本说明

  1. 修饰符 (Modifiers) 是以(.)指明的后缀,指出某个指令以特殊方式绑定。

  2. 例如,.prevent 修饰符告诉 v-on 指令对于触发的事件调用 event.preventDefault()即阻止事件原本的默认行为

  3. 事件修饰符

.stop 阻止事件继续传播

.prevent 阻止标签默认行为

.capture 使用事件捕获模式,即元素自身触发的事件先在此处处理,然后才交由内部元素进行处理

.self 只当在 event.target 是当前元素自身时触发处理函数

.once 事件将只会触发一次

.passive 告诉浏览器你不想阻止事件的默认行为

  1. 键盘事件的修饰符

比如: 项目经常需要监听一些键盘事件来触发程序的执行,而 Vue 中允许在监听的时候添加关键修饰符

  1. v-model 的修饰符

比如: 自动过滤用户输入的首尾空格

一句话: 修饰符 (Modifiers) 是以(.)指明的后缀,指出某个指令以特殊方式绑定

❄应用实例

  1. 需求: 演示 v-on:submit.prevent 的使用, 如果没有输入名字,控制台输出 “请输入名字”,否则输出 "提交表单

  2. 解惑, 为什么在开发中, 有时需要 , 让某个指令以特殊方式绑定, 比如表单提交

  1. 我们不希望将这个表单进行整体提交, 而是是 Ajax 的方式进行提交

  2. 因为表单整体提交会导致重载页面, 而 Ajax 方式可以有选择性提交数据,并且局部刷

vue_modifier.html

  1. 修饰符用于指出一个指令应该以特殊方式绑定。
  2. v-on:submit.prevent的.prevent 修饰符表示阻止表单提交的默认行为
  3. 执行 程序员指定的方法
<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Vue修饰符使用</title>
</head>
<body>
<div id="app">
    <!-- 解读
            1. 修饰符用于指出一个指令应该以特殊方式绑定。
            2. v-on:submit.prevent的.prevent 修饰符表示阻止表单提交的默认行为
            3. 执行 程序员指定的方法
     -->
    <form action="http://www.baidu.com" v-on:submit.prevent="onMySubmit">
        妖怪名: <input type="text" v-model="monster.name"><br/><br/>
        <button type="submit">注册</button>
    </form>
    <p>服务返回的数据是{{count}}</p>
    <h1>修饰符扩展案例</h1>
    <button v-on:click.once="onMySubmit">点击一次</button><br/>
    <input type="text" v-on:keyup.enter="onMySubmit">
    <input type="text" v-on:keyup.down="onMySubmit">
    <input type="text" v-model.trim="count">
</div>
<script src="vue.js"></script>
<script>
    let vm = new Vue({
        el: '#app',
        data: {//数据池
            monster: {//monster数据(对象)的属性, 可以动态生成
            },
            count: 0
        },
        methods: {//方法池
            onMySubmit() {
                //console.log("我们自己的表单提交处理...");
                //"", null, undefined都是false
                if(this.monster.name) {
                    console.log("提交表单 name=", this.monster.name);
                    //这里,程序员就可以根据自己的业务发出ajax请求到后端
                    //得到数据后,在进行数据更新
                    this.count = 666;
                } else {
                    console.log("请输入名字..");
                }
            }
        }
    })
</script>
</body>
</html>

🪄完成测试

在这里插入图片描述

在这里插入图片描述

扩展一下

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

😄总结

本章讲解了vue的事件绑定和修饰符的详细分析以及注意事项和代码演示教学

😁vue系列
扩展篇⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣ - Vue2 脚手架下载及配置淘宝镜像–和ieda的配置和打开
扩展篇⁣⁣⁣⁣ - Vue 项目结构和文件分析
第1篇⁣⁣⁣⁣  - Vue的下载以及MVVM分析
第2篇⁣⁣⁣⁣  - vue数据单双渲染以及代码讲解

🤔欢迎大家加入我的社区 尘觉社区

文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起来评论区一起讨论😁
希望能和诸佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/803274.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java | 继承、多态、抽象类与接口

目录 一、类的继承 二、Object类 2.1 getClass()方法 2.2 toString()方法 2.3 equals()方法 三 、对象类型的转换 3.1 向上转换 3.2 向下转型 四、使用instanceof关键字判断对象类型 五、方法的重载 六、final关键字 6.1 final变量 6.2 final方法 6.3 final类 七…

分冶算法 剑指 07 重建二叉树 排序算法:剑指45 把数组排成最小的数 10-I 斐波那契数列

来记录几个注意事项 1.vector容器里利用find&#xff08;&#xff09;函数 不同于map&#xff08;map有find方法&#xff09;&#xff0c;vector本身是没有find这一方法&#xff0c;其find是依靠algorithm来实现的。 所以要包含头文件 #include <iostream> #include <…

线程字符串传递方式

//扩展作业--参数传递 //思路: 当子线程退出的时候,pthread_exit((void *)88)--->传递给主线程 pthread_join(tid,(void *)&ret1) //函数---参数 #include <pthread.h> #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include …

Y型结构,Y-shape PEG SCM,Y型聚乙二醇琥珀酰亚胺乙酸酯,具有独特的空间结构

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ 规格单位&#xff1a;g |货期&#xff1a;按照具体的库存进行提供 | 纯度&#xff1a;95% PART1----​试剂描述&#xff1a; Y-shape PEG-SCM&#xff0c;Y型结构&#xff0c;具有2个PEG链和一个琥珀酰亚胺乙酸酯基因…

三用表校准仪TD1850多用表校准系统

直流电压标准源 ( DCV ) 输出范围&#xff1a;20 mV&#xff5e;1100 V 直流电流标准源 ( DCI ) 输出范围&#xff1a;2 μA&#xff5e;22 A或33 A 交流电压标准源 ( ACV ) 输出范围&#xff1a;20 mV&#xff5e;1100 V、45 Hz&#xff5e;1100 Hz 交流电流标准源 ( ACI )…

搜索与图论(一)

一、DFS与BFS 1.1深度优先搜索(DFS) DFS不具有最短性 //排列数字问题 #include<iostream> using namespace std;const int N 10; int n; int path[N]; bool st[N];void dfs(int u) {if(u n){for(int i 0;i < n;i) printf("%d",path[i]);puts("&qu…

抖音seo源代码开发搭建--开发者概述

抖音SEO源代码开发搭建需要有一定的开发技术和经验&#xff0c;一般需要掌握以下技能&#xff1a; 掌握HTML、CSS、JavaScript等前端技术&#xff0c;能够编写静态页面和交互效果&#xff1b;了解服务器端语言如PHP、Python等&#xff0c;并能够开发后端逻辑&#xff1b;熟悉数…

Android 中 app freezer 原理详解(一):S 版本

基于版本&#xff1a;Android S 0. 前言 在之前的两篇博文《Android 中app内存回收优化(一)》和 《Android 中app内存回收优化(二)》中详细剖析了 Android 中 app 内存优化的流程。这个机制的管理通过 CachedAppOptimizer 类管理&#xff0c;为什么叫这个名字&#xff0c;而不…

【AHK】通过唤醒窗口快捷菜单调节窗口位置/打开窗口控制菜单的其他方法

需求&#xff1a;触控板使用AHK传统控制窗口位置和大小的方式不方便&#xff0c;故打算通过快捷方式唤醒窗口移动图标的方式来调节。但本人有使用utools的习惯&#xff0c;altspace打开快捷方式菜单/窗口控制菜单会冲突&#xff0c;所以一直尝试新的打开该菜单的方式——先点击…

[语义分割] DeepLab v3(Cascaded model、ASPP model、两种ASPP对比、Multi-grid、训练细节)

Rethinking Atrous Convolution for Semantic Image Segmentation 论文地址&#xff1a;Rethinking Atrous Convolution for Semantic Image SegmentationPytorch 实现代码&#xff1a;pytorch_segmentation/deeplab_v3 这是一篇 2017 年发表在CVPR上的文章。相比 DeepLab V2 有…

一、前端高德地图注册、项目中引入、渲染标记(Marker)and覆盖物(Circle)

首先说明一下&#xff0c;下面的流程只是个人摸索and看文档梳理出来的&#xff0c;并不作为完全正确的流程。 首先&#xff0c;注册 高德开放平台 没有注册的可以点击右上角点击注册&#xff1b; 我们点个人的就ok&#xff1b; 信息完善之后我们到控制台&#xff0c;点击 应…

6个高清图片素材网站,免费下载,值得推荐~

关于图片素材网站&#xff0c;我一直都在推荐这几个&#xff0c;免费下载&#xff0c;可商用&#xff0c;建议收藏起来~ 菜鸟图库 https://www.sucai999.com/pic.html?vNTYwNDUx 网站主要是为新手设计师提供免费素材的&#xff0c;素材的质量都很高&#xff0c;类别也很多&a…

手机word怎么转换成pdf?这几个转换方法推荐给你

手机word怎么转换成pdf&#xff1f;将Word转换为PDF的主要原因是PDF格式具有更好的文件保护性和稳定性。PDF文件是一种可靠的文件格式&#xff0c;可以保护文件免受恶意软件和病毒的攻击&#xff0c;同时保持文件的格式和布局不变。此外&#xff0c;PDF文件可以在不同的操作系统…

【1】-Locust性能测试工具介绍与安装

Locust介绍 locust是一个开源的压测工具&#xff0c;其官网地址是Locust - A modern load testing framework&#xff0c;通过编写Python代码&#xff0c;可以轻松实现百万级的并发&#xff0c;相对于我们熟悉的Jmeter来说&#xff0c;其对压测机的要求更低&#xff0c;而且使…

MicroPython for ESP32

MicroPython for ESP32 开发板引脚图 环境搭建 参考资料 https://zhuanlan.zhihu.com/p/587027345 官方资料 https://docs.micropython.org/en/latest/ http://vcc-gnd.com/rtd/html/esp32/quickref.html#i2c 创建一个虚拟环境&#xff0c; conda create -n esp32 pytho…

编辑员工信息

1.根据员工id查询信息 Controller层 /** 根据员工id查询信息* */GetMapping("/{id}")ApiOperation("根据员工id查询信息")public Result<Employee> getById(PathVariable Integer id){log.info("根据员工id查询信息{}",id);Employee emplo…

pdf转换word软件哪个好?式?这款软件帮你轻松实现转换

在工作中&#xff0c;我们常常遇到这样的情况&#xff1a;我们的文件可能是PDF格式的&#xff0c;但对方要求我们以Word形式发送&#xff0c;因为Word相对于PDF占用更小的内存&#xff0c;打开更方便&#xff0c;发送时间更短。这时我们需要将PDF转换为Word格式&#xff0c;然而…

低代码开发平台源码:可视化敏捷开发工具,拖拽式自定义表单界面

低代码开发平台源码 低代码管理系统源码 无需代码或通过少量代码就可以快速生成应用程序的开发平台。 本套低代码管理后台可以支持多种企业应用场景&#xff0c;包括但不限于CRM、ERP、OA、BI、IoT、大数据等。无论是传统企业还是新兴企业&#xff0c;都可以使用管理后台快速构…

优惠券秒杀(三)

优惠券秒杀一人一单 优惠券的目的是为了引流&#xff0c;但是目前的情况是一个人可以无限制的抢这个优惠券&#xff0c;因此&#xff0c;代码中应该添加一个用户只能下一单的逻辑。保证一个用户只能抢一张券&#xff0c;则只要保证该用户下的优惠券只要一张&#xff0c;即根据优…

List<List<>> 转 List lambda,List<HashMap<>>转List<>

1、在实际的业务处理中&#xff0c;我们经常会碰到需要合并同一个集合内相同属性对象的情况&#xff0c;比如&#xff0c;同一个用户短时间内下的订单&#xff0c;我们需要将各个订单的金额合并成一个总金额。那么用lambda表达式和HashMap怎么分别处理该种情况呢&#xff1f;本…