Vue 事件绑定 和 修饰符

news/2024/11/26 11:38:29/

目录

一、事件绑定

        1.简介 : 

        2.实例 : 

二、修饰符

        1.简介 : 

        2.实例 : 

        3.扩展 : 


一、事件绑定

        1.简介 : 

        (1) 在Vue中,通过"v-on:事件名"可以绑定事件,eg : v-on:click表示绑定点击事件。

        (2) 触发事件时调用的方法,定义在Vue实例中声明的methods属性(结点)中

        2.实例 : 

                以绑定点击事件click为例,event.html代码如下 : 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Event binding</title><script type="text/javascript" src="../vue.js"></script>
</head>
<body><div id="app"><h1>{{preface}}</h1><input type="button" v-on:click="testClick_1()" value="点我点我"/> <br/><br/><!--当触发事件的回调函数不需要传入形参时,可以省略()PS : 需要浏览器支持--><input type="button" v-on:click="testClick_2" value="别点他,点我!"/> <br/><br/><input type="button" v-on:click="testClick_3" value="牛魔,点我才对!"/> <br/><br/><!-- "v-on:"亦可简写为@, 同样需要浏览器的支持. --><input type="button" @click="testClick_4" value="牛魔,点我才对!"/> <br/><br/></div><script>let vm = new Vue({//el 即 element的简写el:"#app",data:{preface:"This a demonstration about Vue's events processing."},methods:{testClick_1() {alert("原神,启动!");},testClick_2() {alert("op能不能收着点味儿?");},testClick_3() {alert("😅😅😅😅😅");},testClick_4() {alert("嘤嘤嘤");}}})</script>
</body>
</html>

                运行效果:(如下GIF图)


二、修饰符

        1.简介 : 

        修饰符Modifiers是由点.开头的指令后缀来表示的,指出某个指令以特殊方式进行绑定

        常见修饰符如下——

  •         .stop 
  •         .prevent
  •         .capture
  •         .self
  •         .once
  •         .passive
<!-- 阻止单击事件继续传播 -->
<a v-on:click.stop="doThis"></a><!-- 提交事件不再重载页面 -->
<form v-on:submit.prevent="onSubmit"></form><!-- 修饰符可以串联 -->
<a v-on:click.stop.prevent="doThat"></a><!-- 只有修饰符 -->
<form v-on:submit.prevent></form><!-- 添加事件监听器时使用事件捕获模式 -->
<!-- 即内部元素触发的事件先在此处理,然后才交由内部元素进行处理 -->
<div v-on:click.capture="doThis">...</div><!-- 只当在 event.target 是当前元素自身时触发处理函数 -->
<!-- 即事件不是从内部元素触发的 -->
<div v-on:click.self="doThat">...</div>

        此外,Vue 允许为v-on:在监听键盘事件时添加按键修饰符,eg : 

<!-- 只有在 `key` 是 `Enter` 时调用 `vm.submit()` -->
<input v-on:keyup.enter="submit">

        2.实例 : 

                在开发中,有时不希望将整个表单进行提交,而是以Ajax方式进行提交,这样,可以有选择性的提交数据,实现局部刷新,不会导致页面重载。
                以表单提交为例,使用.prevent修饰符阻止表单的正常提交,改为调用自定义的回调函数,在函数中进行相应的业务处理(此处为判断用户名是否为空)。
                modifiers_demo.html代码如下 : 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Demonstrate Modifiers</title><script type="text/javascript" src="../vue.js"></script>
</head>
<body><div id="app"><!--.prevent修饰符的存在,使得form表单默认的提交方式失效,触发submit事件时会调用绑定的onMySubmit函数。--><form action="https://www.baidu.com" v-on:submit.prevent="onMySubmit">Username : <input type="text" v-model="user.username"/> <br/><br/><input type="submit" value="Submit"/></form></div><script type="text/javascript">let vm = new Vue ({el:"#app",data: {//以对象的形式提供数据(通过v-model数据双向渲染动态生成)user: {}},methods:{onMySubmit() {if (this.user.username) {   //当作布尔值使用alert("为世界上所有的美好而战!");console.log("username =",this.user.username);} else {console.log("请输入用户名捏~");}}}})</script>
</body>
</html>

                运行效果 : (如下GIF图)

        3.扩展 : 

                演示.once修饰符,"v-on:click.once"表示该点击事件在同一次页面只能触发一次。
                extensive_modifiers.html代码如下 : 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Demonstrate keyModifiers</title><script type="text/javascript" src="../vue.js"></script>
</head>
<body><div id="app"><button v-on:click.once="onMyClick">你只能点我一次捏~不信试试看</button></div><script type="text/javascript">let vm = new Vue({el:"#app",data: {name:"Cyan"},methods: {onMyClick() {alert(this.name + "_RA9");}}})</script>
</body>
</html>

                运行效果 : (如下GIF)

                演示按键修饰符,"v-on:keyup.enter"表示按下键盘上的"Enter"键时会触发该事件,继而调用相应的函数。
                key_modifiers.html代码如下 : 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Demonstrate key modifiers</title><script type="text/javascript" src="../vue.js"></script>
</head>
<body><div id="app"><form action="#">Color : <input type="text" v-model="element.color" v-on:keyup.enter="onMySubmit"/> <br/></form></div><script type="text/javascript">let vm = new Vue({el: "#app",data: {element: {}},methods: {onMySubmit() {alert("你按下了Enter键~")}}})</script>
</body>
</html>

                运行效果:(如下GIF图)

        System.out.println("END-----------------------------------------------------------------");


http://www.ppmy.cn/news/1192408.html

相关文章

自学VUE笔记

一、基础语法学习 1、Attribute 绑定 a、绑定单个属性&#xff1a;给这个div 增加id 属性 ​ <div v-bind:id"dynamicId"></div>简写&#xff1a; <div :id"dynamicId"></div> b、绑定多个属性值 data() {return {objectOf…

stable-diffusion 电商领域prompt测评集合

和GhostReivew一个思路&#xff0c;还是从比较好的图片或者是civitai上找一些热门的prompt&#xff0c;从小红书上也找到了不少的prompt&#xff0c;lexica.art上也有不少&#xff0c;主要是为了电商场景的一些测评&#xff1a; 小红书、civitai、Lexica、Liblib.ai、 depth o…

C++并发与多线程(14) | condition_varible、wait、notify_one、notify_all

概念 当谈到并发编程,特别是在多线程或多进程的上下文中,条件变量(Condition Variables)、等待(wait)、通知一个(notify_one)和通知所有(notify_all)是常见的概念。它们用于协调线程的执行,以实现同步并避免竞争条件。以下是对每个术语的解释: 条件变量: 条件变量…

详解React:Props构建可复用UI的基石

React是一种流行的JavaScript库&#xff0c;用于构建用户界面。它的组件化架构使得开发人员能够轻松地构建可复用的UI元素&#xff0c;从而提高开发效率。在本文中&#xff0c;我们将探讨React中的组件和Props的重要性&#xff0c;以及如何利用它们来构建可复用的UI。 引言 在…

挑战全网最简洁快速平方根倒数算法讲解

文章目录 一句话介绍前置知识推导过程误差分析课后作业参考资料 一句话介绍 功能等同于函数(x) > 1 / Math.sqrt(x)。源码传送门&#xff1a; float Q_rsqrt( float number ) {long i;float x2, y;const float threehalfs 1.5F;x2 number * 0.5F;y number;i * ( lon…

面向对象设计——装饰模式

装饰模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许你动态地为对象添加额外的功能&#xff0c;而不需要修改其源代码。这种模式属于设计模式中的包装模式&#xff0c;它通过将对象包装在装饰器类中来实现。 装饰模式的核心思想是以透明…

【element-ui】表格

效果展示 组件代码 <el-table class"compTableClass" ref"tableOOOOO":class"(className in tableConfig)?tableConfig.className:":data"tableConfig.data" :height"tableConfig.height" style"width: 100%"…

通过C++ 给PDF文档添加文字水印

因PDF文档具有较好的稳定性和兼容性&#xff0c;现在越来越多的合同、研究论文、报告等都采用PDF格式。为了进一步保护这些重要文档内容免受未经授权的复制或使用&#xff0c;我们可以添加水印以表明其状态、所有权或用途。针对工作中可能出现的在 C 应用程序中给 PDF 文档添加…