Vue模板语法【下】事件处理器,表单、自定义组件、通信组件

2023-09-20 11:41:35

目录

一、事件处理器

1.1常用的事件修饰符

1.2常用的按键修饰符

二,vue中的表单

三、自定义组件

四,通信组件


一、事件处理器

1.1常用的事件修饰符

Vue的事件修饰符是用来改变事件的默认行为或者添加额外的功能。以下是一些常用的事件修饰符及其作用:

  1. .stop:阻止事件冒泡,相当于调用event.stopPropagation(),防止事件向父元素传播。当一个事件被触发时,它会向上冒泡到父元素。如果父元素也有相同的事件处理器,那么这个事件处理器将会再次被触发。为了阻止这种事件冒泡,我们可以使用.stop修饰符。

这是一个有着四个div合起来的点击,当我们点击最里面的div时,也就是我们最大的父类时,它就会将它三个子类的点击事件都显示,为了避免这种情况,我们使用.stop去阻止。

			<div class="red" @click="red">
				<div class="orange" @click="orange">
					<div class="blue" @click="blue">
						<div class="black" @click.stop="black"></div>
					</div>
				</div>
			</div>
  1. .prevent:阻止事件的默认行为,相当于调用event.preventDefault(),例如防止表单的提交。

  2. .capture:使用事件捕获模式,即先从外层元素开始触发事件,再向内层元素传播。

  3. .self:只有当事件在元素自身上触发时才会执行相应的处理函数,而不是在内部的子元素上触发。

  4. .once:事件只会触发一次,即事件处理函数执行后会自动解绑。

这些事件修饰符可以与Vue的指令一起使用,例如:

<button v-on:click.stop="handleClick">点击</button>

上述代码中,当按钮被点击时,事件不会继续向上传播,只会执行handleClick方法。

事件冒泡模型:

1.2常用的按键修饰符

document.querySelector('input').addEventListener('keydown', function(event) {
  if (event.key === 'Enter') {
    console.log('Enter key pressed');
  }
});

二,vue中的表单

这里我通过一个简单的案例来演示:

部分代码:

		<!-- 定义边界 -->
		<div id="app">
	     	<h3>演示v-if 使用</h3>
			请输入成绩:1-100 <input type="text" v-model="degree" style="color: red;" />
			<div v-if="degree<=60">等级E</div>
			<div v-else-if="degree<=70">等级D</div>
			<div v-else-if="degree<=80">等级C</div>
			<div v-else-if="degree<=90">等级B</div>
			<div v-else-if="degree<=100">等级A</div>
			<div v-else="">输入成绩不合法</div>
 
 
			 <h3>演示v-show 与 v-if区别</h3>
			<div v-show="ok">show</div>
			<div v-if="ok">if</div>
 
			<h3>演示v-for</h3>
 
			<select>
				<option v-for="h in hobby" :value="h.id">{{h.name}}</option>
			</select>
 
			<div v-for="h in hobby">
				<input :value="h.id" type=checkbox />{{h.name}}
			</div>
		</div>
	</body>
	<script>
		new Vue({
			el: '#app',
			data() {
				return {
					degree: 78,
					ok: false,
					hobby: [{
							id: "1",
							name: "乒乓球"
						},
						{
							id: "2",
							name: "滑板"
						},
						{
							id: "3",
							name: "跑步"
					}],
				};
			}
 
		})
	</script>

(原创不易,HTML代码私信可得,感谢支持)

效果:

点击提交控制台这里获取到值了,之后我们将这种json的数据穿到数据库中就可以了。

在使用Vue定义表单时要注意的事项:

  1. 表单数据的双向绑定:Vue通过指令v-model提供了双向数据绑定的功能,可以将表单元素的值与Vue实例中的数据进行同步。确保在表单元素上使用v-model指令来实现数据的双向绑定。这一点往往出现在我们使用

  2. 表单验证:Vue没有默认的表单验证功能,但可以配合使用第三方的表单验证库(比如Vuelidate、vee-validate等)来实现表单验证。根据具体的需求,选择合适的表单验证库来进行表单验证。

  3. 表单提交事件的处理:在Vue中,可以使用v-on指令绑定表单的submit事件,并在对应的方法中处理表单的提交逻辑。通常可以使用prevent修饰符来阻止表单的默认提交行为,然后执行自定义的操作。

  4. 表单数据的处理与验证:在表单提交前,可以在Vue实例中对表单数据进行处理和验证,确保数据的准确性。可以通过计算属性、watcher或自定义方法来实现数据的处理和验证。

  5. 表单元素的选择与命名:在使用Vue定义表单时,可以给表单元素添加ref属性,以便在Vue实例中引用这些表单元素,并进行相应的操作。此外,要注意给表单元素添加合适的name属性,以方便后台接收表单数据。

  6. 表单的重置:Vue没有提供内置的表单重置功能,因此在需要重置表单时,需要手动将表单的数据恢复到初始状态。

  7. 表单元素的样式控制:可以利用Vue的动态绑定功能,根据表单数据的状态(如验证错误、提交状态等)来添加不同的样式,以提升用户体验。

以上是定义表单时需要注意的一些事项。根据具体的需求,你可能需要进一步研究和应用Vue的相关功能和插件来优化你的表单处理逻辑。

三、自定义组件

组件是什么?  组件(Component)是Vue最强大的功能之一

使用组件的优势:  组件可以扩展HTML元素,封装可重用的代码

组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的界面都可以抽象为一个组件树

那什么是自定义组件?在JavaScript中,自定义组件通常被称为自定义元素,而不是自定义标签。自定义元素是一种HTML元素,它允许您创建可重用的代码片段,这些片段可以在多个页面中使用,使用components。例如我们自己创建button的按钮,与vue中自带的按钮一样,但我们可以使用自己定义的按钮。

自定义组件的案例:

	<div id="app">
		<my-button>点我<my-button>
	</div>
 
	<script>
			new Vue({
				el: '#app',
				components: {
					"my-button": {
						template: "<button>我是自定义组件</button>"
					}
				}
			})
		</script>

四,通信组件

父传子,子传父的介绍:

在Vue中,组件之间的通信是一个非常重要的主题。其中,父组件向子组件传递数据被称为父传子,子组件向父组件传递数据被称为子传父。

父传子

<div id="app">
		<my-button name="父传子"><my-button>
</div>

	<script>
		new Vue({
			el: '#app',
			components: {
				"my-button": {
					props:['name'],
					template: "<button>{{name}}</button>"
				},
			}
		})
	</script>

子传父

	<div id="app">
			<my-button name="子传父" n="9"><my-button>
	</div>
			<script>
				new Vue({
					el: '#app',
					components: {
						"my-button": {
							props:['name'],
							template:'<button @click="incrn">{{name}}被了点击{{n}}次</button>',
							data:function(){
								return {
									n:9
								}
							},
							methods:{
								incrn(){
									this.n++;
								}
							}
						}
					}
				})
			</script>

通过自定义事件,子组件可以向父组件传递数据并触发特定的方法。父传子和子传父是Vue中常用的组件通信方式,可以实现组件之间的数据交互和状态管理。理解和熟练运用这些通信方式可以提高开发效率并提升代码的可维护性。

总结:

在子组件中通过props属性接收父组件传递的数据。

在父组件中监听子组件触发的事件,并在对应的方法中接收子组件传递的数据。

更多推荐

linux的应用线程同步与驱动同步机制

同步机制在Linux应用程序和内核中的驱动程序中,有一些常见的同步机制用于实现线程或进程之间的同步和数据访问保护。下面是它们的一些主要机制:Linux应用程序中的同步机制:互斥锁(Mutex):用于保护共享资源,确保只有一个线程可以访问该资源。应用程序可以使用pthread_mutex_t类型的互斥锁,使用pthrea

爬虫入门基础:深入解析HTTP协议的工作过程

目录一、HTTP协议简介二、HTTP协议的工作过程三、请求方法与常见用途四、请求头与常见字段五、状态码与常见含义六、进阶话题和注意事项总结在如今这个数字化时代,互联网已经成为我们获取信息、交流和娱乐的主要渠道。而在互联网中,HTTP协议则扮演着至关重要的角色。HTTP,全称HypertextTransferProtoc

SpringMVC之JSR303和拦截器

目录一.JSR303二.JSR常用的注解三.JSR快速入门四.拦截器⭐⭐⭐拦截器和过滤器有什么不一样,或者它们的区别是什么??五.拦截器快速入门--登录的案例一.JSR303JSR303是Java规范的一部分,全称为BeanValidation框架。它定义了一组基于标注的验证注解,用于验证Java对象的属性值的合法性。

【Java 基础篇】ThreadPoolExecutor 详解

多线程编程是现代应用程序开发中的一个重要主题。为了更有效地管理和利用多线程资源,Java提供了丰富的线程池支持。ThreadPoolExecutor类是Java中用于创建和管理线程池的核心类之一,本文将详细介绍ThreadPoolExecutor的使用方法和原理。线程池的基本概念在深入探讨ThreadPoolExecu

leetcode 54. 螺旋矩阵

1.题解如果一条边从头遍历到底,则下一条边遍历的起点随之变化选择不遍历到底,可以减小横向、竖向遍历之间的影响一轮迭代结束时,4条边的两端同时收窄1一轮迭代所做的事情变得很清晰:遍历一个“圈”,遍历的范围收缩为内圈一层层向里处理,按顺时针依次遍历:上、右、下、左。不再形成“环”了,就会剩下:一行或一列,然后单独判断矩阵不

计算机竞赛 机器视觉opencv答题卡识别系统

0前言🔥优质竞赛项目系列,今天要分享的是🚩答题卡识别系统-opencvpython图像识别该项目较为新颖,适合作为竞赛课题方向,学长非常推荐!🥇学长这里给一个题目综合评分(每项满分5分)难度系数:3分工作量:3分创新点:3分🧿更多资料,项目分享:https://gitee.com/dancheng-senior

Vue路由及Node.js环境搭建

目录一.Vue路由1.1定义1.2应用领域1.3代码展示二、Node.js2.1定义2.2特点三.Node.js安装与配置好啦今天到这了,希望帮到你!!!一.Vue路由1.1定义Vue路由是指使用VueRouter插件来管理前端应用程序的导航和页面路由的过程。它允许你在单页面应用程序(SPA)中定义不同的路由路径,并将

JVM相关知识

运行程序时JVM中内存区域的划分:线程私有:本地方法栈:本地方法栈与虚拟机栈相似,区别是,本地方法栈为虚拟机使用的本地方法服务,虚拟机栈为虚拟机使用的JAVA方法服务。虚拟机栈:虚拟机栈中保存的主要是一个个栈帧,每当有一个方法被调用时,都会有栈帧入栈,方法结束时,栈帧就会被弹出,每个栈帧由局部变量表和操作数栈,动态连接

计算机毕业设计 基于SSM的电影推荐系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌🍅文末获取源码联系🍅👇🏻精彩专栏推荐订阅👇🏻不然下次找不到哟————————————————计算机毕业设计题目《10

亚运之城:杭州的搞钱之王 首富都得靠边站

作者:积溪简评:这届亚运会,杭州成了显眼包,也卷成了蚊香,这背后杭州的搞钱实力,究竟有多牛?#杭州亚运会#马云#阿里手机可以“打”公交10分钟就能到还只要1块钱?这届亚运会杭州的宝子们真成了“显眼包”杭州也卷成了蚊香钱塘江边的灯光秀玉皇大帝睡觉都得戴眼罩路边的椅子能充电垃圾桶穿上新外套就连“美男计”都不放过地铁口人均1

软考 -- 计算机学习(2)

文章目录一、安全性知识1.1信息安全和信息系统安全1.2信息安全技术1.3网络安全技术二、多媒体技术三、软件工程基础知识3.1信息系统生命周期3.2软件过程模型3.3信息系统开发方法3.4系统分析和设计概述3.5结构化开发方法3.6系统运行与维护四、项目管理4.1进度管理4.2质量管理4.3风险管理一、安全性知识1.1

热文推荐