Vue入门教程--事件修饰符的设置详解(article:4)

Windows C语言编程:Beep API实现蜂鸣器原理与实战 如果你在 Windows 上写过 C 语言程序,想给程序加个简单的提示音,第一个想到的可能是 printf("\a") 。这个转义字符确实能在某些终端里发出“嘀”的一声,但它太原始、太不可控了,而且很多时候根本没声音。那么,有没有一种更“Windows”、更可控、更专业的方法来让你的程序“说话”呢? 答案是肯定的,而且它比你想象的要强大和复杂。Windows 提供了一个名为 Beep 的 API 函数,专门用于生成蜂鸣声。你可能觉得这功能太简单,甚至有点过时——不就是让电脑“哔”一声吗?但恰恰是这个看似简单 阅读详情

Vue.js 初步入门


修饰符介绍

  1. .stop :阻止冒泡
  2. .prevent :阻止默认事件
  3. .capture :增加事件监听器时,使用事件捕获模式
  4. .self :事件在本身触发时,触发回调
  5. .once :事件只触发一次

修饰符详解

1. stop

在原生js里,如果不加以阻止,会有冒泡机制对事件进行冒泡回调,如下图,当我们点击子元素child时,不但子元素的click事件会触发,同时父元素parents的事件也会触发,这就是所谓的事件冒泡机制。


	<style type="text/css">
		#parents{
			width:200px;
			height: 200px;
			background-color: #FF69B4;
		}
		#child{
			width:100px;
			height: 100px;
			background-color: aqua;
		}
	</style>
	<body>
		<div id="container">
			<div id="parents" @click="hadlePclick">
				parents
				<div id="child" @click="hadleCclick">
					child
				</div>
			</div>
		</div>
	</body>
	<script type="text/javascript">
		// 新建一个vue对象,里面需要传入一个“选项对象”
		// 也可以理解成json对象
		new Vue({
			//el是element的缩写,传入vue依赖的元素
			el:"#container",
			//数据与,所有与UI交互的数据都可以放在这儿
			data:{
				msg:"hello vue.js"
			},
			//方法块,用来放置方法
			methods:{
				//这是es6写法
				hadlePclick(){
					console.info("parents");
				},
				hadleCclick(){
					console.info("child");
				}
			}
		});
	</script>
</html>

在这里插入图片描述
用原生js方法,我们可以在事件末尾调用event.stopPropagation();来阻止事件的冒泡。
vue中,给我们提供了例外一种阻止事件冒泡的方案,那就是事件修饰符.stop,只要在想要阻止冒泡的事件绑定符后面加上事件修饰符,便可以阻止冒泡,如@click.stop,效果如图所示:

<div id="child" @click.stop="hadleCclick">
	child
</div>

在这里插入图片描述

2. prevent

有些html标签有自己的默认事件,比如<a>标签,只要你点击了,就会跳转或者刷新,以至于我们整个页面上自己所填写的数据都会被刷新掉。以往的js原生办法是修改a标签的属性href="javascript:void(0);",这样,整个页面的数据就不会被刷新掉。

<a href="javascript:void(0);">这是a标签</a>

在这里插入图片描述
在vue里提供了.prevent事件修饰符,来阻止默认事件的发生:

<input type="text" />

<a href="" @click.prevent="hadleAClick">这是a标签</a>

hadleAClick(){
	console.info("<a>点击了");
}

在这里插入图片描述

3. capture

众所周知,事件的捕获过程之后就是事件的冒泡过程,如图所示:
在这里插入图片描述
而.capture修饰符就是用事件捕获模式来增加事件监听器的:

<div id="parents" @click.capture="hadlePclick">
	parents
	<div id="child" @click="hadleCclick">
		child
	</div>
</div>

在这里插入图片描述
它正好和冒泡的事件发生顺序相反。

4. self

这个修饰符,只会触发他自身的回调函数(事件),只要用这个修饰符修饰过的子类元素事件都只会发生自己的事件,不会向上冒泡:

<div id="parents" @click.self="hadlePclick">
	parents
	<div id="child" @click="hadleCclick">
		child
	</div>
</div>

在这里插入图片描述

5. once

.once修饰符修饰过的事件之会发生一次,再点击就不会触发。

<a href="" @click.once="hadleAClick">这是a标签</a>

第一次点击会输出语句,之后再点击就不会执行它的hadleAClick点击事件。
在这里插入图片描述

Tip

  1. 事件修饰符可以进行串联修饰,不用担心不能同时使用,如@click.prevent.once=""
  2. .stop和.self都是阻止冒泡事件的发生,区别在于一个阻止属于“我”的事件向上冒泡,另一个是阻止“我”的子元素来被动冒泡我。

【COMSOL】修改内置物理场方程 模拟水沸腾的蒸汽泡运动 在COMSOL中通过弱贡献(weak contribution)节点,可以向任何内置模型方程中添加约束。这里,以模拟水沸腾的蒸汽泡运动为例,来讲一讲当我们研究的方程与模块方程不一样时,应该怎么增加新的贡献项。 阅读详情

相关推荐

历年CSP-J(NOIP普及组)考点分析与分类汇总(纯干货)

noip/csp-j历年真题考点分类

weixin_42358969的博客 1万+

Vue入门教程--自定义指令使用详解(article:12)

Vue.js 初步入门 功能简介 我们在前端编程时,有些功能vue并没有进行封装,我们需要这些功能的时候,就需要自己进行手动封装了,vue提供了自定义指令的功能,让我们可以随心所欲进行自定义指令的封装。 举个简单的例子,如果我写了一个简单的表单,我想在一开始加载这个页面的时候就能第一时间聚焦到第一个输入账号的框上,解决方案有两种,第一种就是利用HTML5中input标签自带的属性autofocu...

DuCeh的博客 322

别再让OCV拖慢你的芯片!手把手教你用set_timing_derate优化STA时序(附CPPR实战)

本文深入探讨了芯片设计中OCV(On-Chip Variation)对时序分析的影响,并提供了使用`set_timing_derate`优化STA时序的实战指南。通过分阶段derate设置和CPPR技术,有效减少时序违例,提升芯片性能。文章结合TSMC 7nm工艺案例,详细解析了OCV建模与优化策略,助力工程师实现时序收敛。

weixin_42525005的博客 304

Vue入门教程--Vue的第一个实例(article:1)

Vue.js 初步入门 框架介绍 什么是vue Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架。 Vue 只关注视图层, 采用自底向上增量开发的设计。 Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。 Vue 学习起来非常简单,本教程基于 Vue 2.1.8 版本测试。 学习vue的前提 学习vue之前...

DuCeh的博客 558

详解Unity中的粒子系统Particle System (三)

上一篇我们详细讲解了有关主模块的全部内容,已经对粒子系统的基本运作有了足够的了解,本篇就来讲一下被粒子系统默认启用的Emission、Shape、Renderer模块又在粒子系统中扮演着怎么样的作用吧。

梦小天幼的博客 1万+

使用python排八字 计算八字的相合相冲五行分值等 ...

简介 八字术是一种古老的算命术。它运用阴阳、五行、干支、八卦等理论,把人的出生年月日时转化为八个字,进而推算人的富贵贫贱、祸福吉凶、穷通寿天、名利地位、家庭六亲等方面的情况 八字源自古代的中国,是一种利用天干和地支来准确记录年、月、日、时的方式,由“年干,年支”、“月干,月支”、“日干,日支”、“时干,时支”,共八个干支所组成(共八个字),年、月、日、时...

weixin_33717298的博客 5310

Vue入门教程--vue的组件功能Component详解(article:16)

Vue.js 初步入门 组件(Component)是 Vue.js 最强大的功能之一。 组件可以扩展 HTML 元素,封装可重用的代码。 组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的界面都可以抽象为一个组件树: 使用简介 注册一个全局组件:Vue.component('组件名称', {配置选项}) 注册一个私有组件:components:{'组件名称':{配...

DuCeh的博客 1417

【2023版】基于JT808/JT1078协议的车载视频监控平台开发实战-开源架构解析

本文详细解析了基于JT808/JT1078协议的车载视频监控平台开发实战,涵盖协议核心作用、开源架构设计、开发避坑指南及二次开发建议。重点介绍了JT1078协议在音视频传输中的优化方案,以及海量位置数据存储、高可用架构等关键技术点,为开发者提供全面的实战参考。

weixin_26965807的博客 235

Vue入门教程--vue的生命周期函数详解(article:13)

Vue.js 初步入门 vue有8大生命周期函数,“生命演变”如图所示: 生命周期函数阶段分为四类:创建阶段、挂载阶段、更新阶段,和销毁阶段。 beforeCreate:实例创建之前调用 created:实例创建成功,此时 data 中的数据显示出来了 beforeMount:数据中的 data 在模版中先占一个位置 mounted:模版中的 data 数据直接显示出来了 beforeUpd...

DuCeh的博客 340

远程桌面项目

远程桌面项目

weixin_41560737的博客 1933

20、认知负荷理论在教育技术中的应用

本文深入探讨了认知负荷理论(Cognitive Load Theory, CLT)在教育技术中的应用,重点分析了如何通过优化教学设计减少学习者的认知负荷,提高学习效率。文章介绍了认知负荷的三种类型:内在认知负荷、外在认知负荷和germane认知负荷,并结合多媒体学习原则(如模态效应、空间连续性原则、时间连续性原则等)提出了减少外在认知负荷的具体策略。此外,文章通过实证研究和教学案例,展示了认知负荷理论在不同学科和个性化教学中的广泛应用和有效性。最终,文章总结了应用认知负荷理论进行教学设计的具体流程,强调其在

solidity8miner的博客 922

Vue实战知乎日报(4)--daily-article组件

daily-article是知乎日报中最重要的内容板块: 单独列出来,作具体分析: 内容板块包括主题title,内容content,以及评论区comments 内容渲染主要通过watch监控id变化时触发getArticle函数渲染,使用来自util配置的ajax(引用了axios模块), 通过正则匹配对应src的内容替换res.body的src内容成图片路径,将数据返回给内容,回滚顶...

Beq 1201

Claude Code 100个真实案例 - 用AI搭建GIS地理信息系统(地图标注+热力图)

本案例展示如何使用 Claude Code 从零搭建一个完整的 GIS 地理信息系统。我们将使用 Python + Flask 作为后端,Leaflet.js 作为前端地图引擎,实现地图标注、热力图展示、区域绘制、坐标搜索等功能。全程通过与 Claude Code 对话完成,让你感受 AI 在地理信息领域的强大开发能力。

yueyeguzhuo的专栏 112

vue 基础知识

vue

Lyndon的专栏 1116

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

前端面试锦集

基本面试: 做过最满意的项目是什么?项目背景?为什么要做这件事情?最终达到什么效果?你处于什么样的角色,起到了什么方面的作用?在项目中遇到什么技术问题?具体是如何解决的? 如果再做这个项目,你会在哪些方面进行改善? 基础扎实: IT行业,哪些发展好的同学都是具备扎实基础知识,如果理解计算机基础会更好,因为我们面临很多非前端计算问题的。 主动思考: 被动完成任务成长会很慢的,需要有自己的想法,而不是仅仅是完成任务的。 自动学习: 前端领域知识淘汰速度很快,需要经常学习新知识。 追溯深度: 遇到问题是多研究背.

Front小思的博客 6724

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

学习Vue之笔记一

1.跳转页面 (1).点击事件绑定一个元素 例:<div class=“clickMe” @click=“oSomething”> (2).在方法中调用并跳转页面 例: articleInfo(article_id){ this.$router.push({ path:'/article', // 跳转页面 query:{ id:article_id // 参数 } }) } (3)

weixin_42049654的博客 164

vue项目——文章列表模块

创建组件并配置路由 我们首先在views文件夹下面创article文件夹 里面存放的是文章列表组件 并在组件中配置了路由信息 { path: '/home', component: () => import('@/views/home/Home.vue'), children: [ { path: '', component: () => import('@/views/home/in...

李公子的博客 2333

Vue入门教程--键值修饰符使用详解(article:11)

Vue.js 初步入门 日常上网会有这样的场景,当你登录一个网站的时候,可以点击网页上的登录按钮,或者也可以用手指点击回车键登录,js需要监听键盘的按下(onkeydown)或抬起(onkeyup)事件以进行一些操作。vue提供了这样的事件绑定按键的功能。 按键修饰符:.enter .tab .delete .esc .space .up .down .left .right 使用详情 &l...

DuCeh的博客 520

Vue组件的封装与引用

封装 Vue 组件并引用其实很简单,可以按照以下步骤进行:在 Vue 项目中的 src/components 目录下创建你的组件文件夹,并在其中创建一个 .vue 文件。在这个 .vue 文件中编写你的组件逻辑和模板代码。确保将组件内部需要暴露出来的数据使用 props 属性传递给父组件。导出该组件,可以使用 export default 或者 export 关键字导出组件对象。在需要使用该组件的父组件中,通过 import 引入组件,然后将该组件作为子组件使用。

qq_46100001的博客 758

vue 动态组件使用教程

vue 动态组件的使用,下面进行介绍 1、基本使用 新建组件 Article.vue <template> <div> <p>黄州东南三十里为沙湖,亦曰螺师店。予买田其间,因往相田得疾。</p> <p>闻麻桥人庞安常善医而聋。遂往求疗。</p> <p>安常虽聋,而颖悟绝人,以纸画字,书不数字,辄深了人意。</p> <p&

悟世君子的博客 4320

文章详情 (五) 02-评论组件-评论列表渲染-定义和使用API-子组件comment.vue接收父组件article.vue数据& 判断是否全部加载完毕用时间非ID &:key唯一标识绑定列表ID

文章详情-评论组件-评论列表渲染-定义和使用API-子组件comment.vue接收父组件article.vue数据 & 判断是否全部加载完毕,用的是时间非ID &:key 唯一标识 绑定列表ID 组件初始化时候,默认触发上拉加载。 组件激活的时候,需要主动触发上拉加载。 测试文章:http://localhost:8080/#/article/141314 定义API src...

weixin_44867717的博客 417

【Vue框架】使用slot插槽实现文章组件

1.2 Article.vue 2. 效果 【注意】分割线是用作用域插槽实现的。

在热爱技术的路上一直前行。 264

vue实现文章列表

现在来尝试做文章列表,完成后是这样的: 父App.vue <template> <div id="app"> <!-- 用 v-for 渲染文章列表 --> <Article v-for="article in articleList" :key="article.title" :article="article"></A...

weixin_43117402的博客 3226

div,section,article,aside 区分

section:含义是区,块。里面必须包含一个标题,如果一个网页分区比较明确可以使用section。举例:报纸 section不能代替div。在没有明确的区块划分(没有标题)的情况下最好用div,如果用了section的话需要设置样式,最好在section中设置一个div,然后给这个div设置样式以及脚本。最好不要直接在section上设置样式和脚本 section和article可以互相嵌套。article的含义是一篇完整的文章。一篇完整的文章就需要有标题有内容,有结尾,所以当你写的页面包含这些.

War__Tiger的博客 1942

Vue移动端系列 => [07] 文章详情

七、文章详情 创建组件并配置路由 1、创建 views/article/index.vue 组件 <template> <div class="article-container">文章详情</div> </template> <script> export default { name: 'ArticleIndex', components: {}, props: { articleId: { type: [

Write less,do more 651

Vue简介

Vue简介1 概述2 Vue热加载3 Vue的双向数据绑定的原理 1 概述 Vue.js 可以说是MVVM架构的最佳实践,是一个JavaScript MVVM库,是一套构建用户界面的渐进式框架。专注于 MVVM 中的 ViewModel,不仅做到了数据双向绑定,而且也是一款相对比较轻量级的JS 库,API 简洁。 Vue用于构建用户界面的渐进式框架,渐进式代表的含义是:主张最少。每个框架都不可避免会有自己的一些特点,从而会对使用者有一定的要求,这些要求就是主张,主张有强有弱,它的强势程度会影响在业务开发中

橘猫吃不胖的博客 5645

Vue入门教程--过滤器的使用详解(article:10)

Vue.js 初步入门 细节说明 js中的数组在es6中增加了新的过滤器方法,.filter来过滤掉用户不想要的数据部分或者替换成自己想展现的数据。 vue中也为我们提供了类似的过滤器用来过滤插值表达{{}}以及其他部分的数据,且它分为全局过滤器和(私有)局部过滤器。 全局过滤器:Vue.filter('过滤器名称',function(data,arg1,arg2,...){return 过滤...

DuCeh的博客 508
上一篇: Vue入门教程--v-bind,v-on对属性和事件进行设置详解(article:3)
下一篇: Vue入门教程--v-model数据的双向绑定详解(article:5)
DuCeh
博客等级 码龄10年 7粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值