vue的模板语法(下篇)

news2025/6/9 0:57:01

目录

一.事件处理

二.表单的综合案例

三.组件通信⭐⭐

 3.1 自定义组件

 3.2 组件通信之父传子

3.3组件通信之子传父


一.事件处理

 Vue通过由点(.)表示的指令后缀来调用修饰符,

  .stop

  .prevent

  .capture

  .self

  .once

如下:

 阻止单击事件冒泡

          <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>

只当事件在该元素本身(而不是子元素)触发时触发回调

          <div v-on:click.self="doThat">...</div>

click 事件只能点击一次

          <a v-on:click.once="doThis"></a>

来看一下单击冒泡事件:

        创建四个容器:

	<!-- 定义边界 -->
		<div id="contect">
			<div class="one"  @click="fun1">
				<div class="two"  @click="fun2">
					<div class="three"  @click="fun3">
						<div class="four" @click="fun4"></div>
					</div>
				</div>
			</div>
		</div>

给它们添加不同的颜色和大小:

<style type="text/css">
			.one{
				background-color: lightpink;
				height: 400px;
				width: 400px;
			}
			.two{
				background-color: cyan;
				height: 300px;
				width: 300px;
			}
			.three{
				background-color: fuchsia;
				height: 200px;
				width: 200px;
			}
			.four{
				background-color: lime;
				height: 100px;
				width: 100px;
			}
		</style>

最后写方法,点击事件:

<script type="text/javascript">
			new Vue({
				el:"#contect",
				data(){
					return{
						
					};
				},
				methods:{
					fun1(){
						alert("fun1")
					},
					fun2(){
						alert("fun2")
					},
					fun3(){
						alert("fun3")
					},
					fun4(){
						alert("fun4")
					}
				}
			})
		</script>
		

效果:

这就冒泡事件,如果要阻止,就要通过.stop来实现

效果:

        其他的也是一样的,大家可以试一试!!

二.表单的综合案例

        首先先造一些数据:

<script type="text/javascript">
			new Vue({
				el:"#contect",
				data(){
					return{
						name:"海绵宝宝",
						pwd:"123123",
						sexList:[{
							name:"公",id:1
						},{
							name:"母",id:2
						},{
							name:"未知",id:3
						}],
						sex:"1",
						hobby:[{
							name:"吹泡泡",id:1
						},{
							name:"抓水母",id:2
						},{
							name:"做蟹堡",id:3
						}],
					    myHobby:[],
						address:[{
							name:"太平洋",id:1
						},{
							name:"大西洋",id:2
						},{
							name:"北冰洋",id:3
						},{
							name:"印度洋",id:4
						}],
						myAddr:null,
						sign:null,
						ok:false
					};
				}
			})
		</script>

接着搭建界面;

<!-- 定义边界 -->
		<div id="contect">
			姓名:<input name="name" v-model="name"/><br />
			密码:<input type="password" v-model="pwd"/><br />
			性别:<span v-for="s in sexList">
				<input type="radio" name="sex" v-model="sex" :value="s.id"/>{{s.name}}
			</span><br />
			地址:<select name="myAddr" v-model="myAddr" >
				<option v-for="a in address" :value="a.id">{{a.name}}</option>
			</select><br />
			爱好:<span v-for="h in hobby"  >
				<input type="checkbox"  v-model="myHobby" name="myHobby":value="h.id"/>{{h.name}}
			</span><br />
			个人简介:<textarea v-model="sign" cols="18" rows="4"></textarea> <br />
			同意:<input type="checkbox" v-model="ok"/><br />
		<button v-show="ok" @click="submit()"> 提交</button>
		
		</div>

     

  搭建好之后就来写方法,  保存json格式数据

methods:{
					submit(){
						var obj={};
						obj.name=this.name;
						obj.pwd=this.pwd;
						obj.sex=this.sex;
						obj.address=this.myAddr;
						obj.hobby=this.myHobby;
						obj.sign=this.sign;
						console.info(obj);
					}
				}

最后打印看结果:

三.组件通信⭐⭐

        3.1 自定义组件

        原本是没有<my-button>这个按钮属性

<div id="contect">
			<p>自定义组件</p>
			<my-button>我的按钮</my-button>
		
		</div>

        写方法实现:

<script type="text/javascript">
			new Vue({
				el:"#contect",
				components:{
					"my-button":{
						template:"<button>{{我的按钮}}</button>"
					}
				},
					
			})
		</script>
		
		

 3.2 组件通信之父传子

--父组件向子组件传递数据(props)和子组件向父组件传递数据(事件)

在父组件中,可以通过在子组件标签上使用属性来传递数据。子组件可以通过在组件定义的选项中声明 props 来接收父组件传递的数据

加了一个属性,me 

<!-- 定义边界 -->
		<div id="contect">
			<p>组件通信父传子</p>
			<my-button me="潇洒姿"></my-button>
		</div>
<script type="text/javascript">
			new Vue({
				el:"#contect",
				components:{
					"my-button":{
						props:["me"],
						template:"<button>{{me}}</button>"
					}
				}
				
			})
		</script>

3.3组件通信之子传父

        在子组件中,可以通过触发自定义事件来将数据传递给父组件。父组件可以通过在子组件标签上监听对应的事件来接收子组件传递的数据。

<div id="contect">
			<p>组件通信子传父</p>
			<my-button me="潇洒姿" @xxx="getParam"></my-button>
		</div>
<script type="text/javascript">
			new Vue({
				el:"#contect",
				components:{
					"my-button":{
						props:["me"],
						template:"<button @click='clickMe'>{{me}}</button>",
						methods:{
							clickMe(){
								let name="张三";
								let bname="我的高中暗恋故事";
								let price="无价";
								this.$emit("xxx",name,bname,price)
							}
						}
					}
				},
				methods:{
					getParam(a,b,c){
						console.info(a,b,c);
					}
					}
					
			})
		</script>
		

效果:

今天的分享就到这啦!!! 

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

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

相关文章

Mybatis学习笔记11 缓存相关

Mybatis学习笔记10 高级映射及延迟加载_biubiubiu0706的博客-CSDN博客 缓存:cache 缓存的作用:通过减少IO的方式,来提高程序的执行效率 Mybatis的缓存:将select语句的查询结果放到缓存(内存)当中,下一次还是这条select语句的话,直接从缓存中取,不再查数据库.一方面是减少了I…

基于Android+OpenCV+CNN+Keras的智能手语数字实时翻译——深度学习算法应用(含Python、ipynb工程源码)+数据集(三)

目录 前言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理2. 数据增强3. 模型构建4. 模型训练及保存1&#xff09;模型训练2&#xff09;模型保存 5. 模型评估 相关其它博客工程源代码下载其它资料下载 前言 本项目依赖于Keras深度学习模型&#xff0c;旨在对…

JavaWeb学习总结(在IntelliJ IDEA中配置使用Tomcat)

1、配置 ​​​​​​​ 在 Libray 中选 Java 选项&#xff08;也就是安装Tomcat的路径&#xff09; 如果运行时端口被占用可以修改端口 例如&#xff1a;原8080&#xff0c;可改为8081&#xff08;也可修改其他&#xff09; 2、使用Serlvet package com.company;import java…

将近 5 万字讲解 Python Django 框架详细知识点(更新中)

Django 框架基本概述 Django 是一个开源的 Web 应用后端框架&#xff0c;由 Python 编写。它采用了 MVC 的软件设计模式&#xff0c;即模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;和控制器&#xff08;Controller&#xff09;。在 Django 框架中&am…

Oracle查询固定时间间隔

获取每一天 SELECT (trunc(to_date(2023-01-01,YYYY-MM-DD), dd) LEVEL -1) as DATA_TIME FROM dual CONNECT BY LEVEL < 3;解释&#xff1a; 这个 SQL 查询语句的目的是生成一个包含三个日期的结果集。查询的结果是从当前日期开始的三个连续日期。让我解释一下查询的各个…

ClickHouse与Elasticsearch比较总结

目录 背景 分布式架构 存储架构 写入链路设计 Elasticsearch 再谈Schemaless 查询架构 计算引擎 数据扫描 再谈高并发 性能测试 日志分析场景 access_log&#xff08;数据量197921836&#xff09; trace_log&#xff08;数据量569816761&#xff09; 官方Ontime测…

爬虫入门基础与Selenium反爬虫策略

目录 一、爬虫入门基础 1、什么是爬虫&#xff1f; 2、爬虫的分类 3、爬虫的基本流程 二、Selenium简介 1、Selenium是什么&#xff1f; 2、Selenium的用途 三、应对反爬虫的Selenium策略 1、使用代理IP 2、模拟用户行为 3、设置合理的请求间隔时间 4、随机化请求参…

社区活跃开发者 Aaron 加入 sCrypt

Aaron&#xff08;周全&#xff09;是资深的 BSV 开发者&#xff0c;前 nChain BSV 基础架构团队成员&#xff0c;也是比特币协会在中国任命的首位技术推广专家。作为 BSV 社区的活跃成员&#xff0c;他多次作为演讲者参与区块链技术会议&#xff0c;开发了 Webot 应用、Witnes…

【完美解决】GitHub连接超时问题 Recv failure: Connection was reset

问题&#xff1a; 已经开了梯子但是在Idea中使用git&#xff08;GitHub&#xff09;还是连接超时Recv failure: Connection was reset。此时需要让git走代理。 解决方案&#xff1a; 1.对右下角网络点击右键 -> 打开网络和Internet设置 2.代理 -> 查看到地址和端口号…

智能生活从这里开始:数字孪生驱动的社区

数字孪生技术&#xff0c;这个近年来备受瞩目的名词&#xff0c;正迅速渗透到社区发展领域&#xff0c;改变着我们居住的方式、管理的方式以及与周围环境互动的方式。它不仅仅是一种概念&#xff0c;更是一种变革&#xff0c;下面我们将探讨数字孪生技术如何推动社区智能化发展…

淘宝分布式文件存储系统( 二 ) -TFS

淘宝分布式文件存储系统( 二 ) ->>TFS 目录 : 大文件存储结构哈希链表的结构文件映射原理及对应的API文件映射头文件的定义 大文件存储结构 : 采用块(block)文件的形式对数据进行存储 , 分成索引块,主块 , 扩展块 。所有的小文件都是存放到主块中的 &#xff0c;扩展块…

湖南湘潭家具3D轮廓扫描测量家居三维数字化外观逆向设计-CASAIM中科广电

随着科技的不断进步&#xff0c;CASAIM三维扫描技术在各个行业中得到了广泛应用&#xff0c;家具行业也不例外。传统的家具设计和展示方式已经无法满足现代消费者的个性化、多元化需求&#xff0c;而三维扫描技术的出现为家具行业带来了新的机遇和可能性。 家具表面有雕刻图案…

Selenium和Requests搭配使用

Selenium和Requests搭配使用 前要1. CDP2. 通过requests控制浏览器2. 1 代码一2. 2 代码2 3. 通过selenium获取cookie, requests携带cookie请求 前要 之前有提过, 用selenium控制本地浏览器, 提高拟人化,但是效率比较低,今天说一种selenium和requests搭配使用的方法 注意: 一定…

企业该如何选择数字化转型工具?_光点科技

随着科技的不断进步和数字化的浪潮席卷全球&#xff0c;企业数字化转型已经成为了保持竞争力和持续增长的关键因素之一。无论企业规模大小&#xff0c;数字化转型都可以提高效率、降低成本、改善客户体验&#xff0c;从而实现更好的业务结果。然而&#xff0c;要成功进行数字化…

Unity云原生分布式运行时

// 元宇宙时代的来临对实时3D引擎提出了诸多要求&#xff0c;Unity作为游戏行业应用最广泛的3D实时内容创作引擎&#xff0c;为应对这些新挑战&#xff0c;提出了Unity云原生分布式运行时的解决方案。LiveVideoStack 2023上海站邀请到Unity中国的解决方案工程师舒润萱&#x…

iPhone辐射超标,发布三年突然禁售了

昨晚 iPhone 15 预售大家抢到了吗&#xff1f; 虽然13日发布会后大家的反应十分冷静&#xff0c;但身体还是很诚实&#xff0c;官网都排到6-7周以后了... 在大伙都争着第一波尝鲜的时候&#xff0c;有一个地方正准备禁售 iPhone 。 不用想肯定是欧盟某个国家啦&#xff0c;这…

python正则表达(06)

python正则表达(06) 文章目录 python正则表达(06)1 正则表达式概念2 正则的三个基础方法2.1 match、search、findall三个基础方法2.2 re.match() 函数2.2.1 re.match(匹配规则&#xff0c;被匹配字符串)2.2.2验证是否开头匹配&#xff0c;match是匹配开头&#xff0c;后面的是不…

Ingress Controller

什么是 Ingress Controller &#xff1f; 在云原生生态中&#xff0c;通常来讲&#xff0c;入口控制器( Ingress Controller )是 Kubernetes 中的一个关键组件&#xff0c;用于管理入口资源对象。 Ingress 资源对象用于定义来自外网的 HTTP 和 HTTPS 规则&#xff0c;以控制进…

Ae 效果:CC Ball Action

模拟/CC Ball Action Simulation/CC Ball Action CC Ball Action &#xff08;CC 球体动作&#xff09;基于源图像转换为网格&#xff0c;并基于网格生成一个个继承源图像像素颜色的具有 3D 深度的小球体。 效果名称左侧出现的立方体图标&#xff0c;表示本效果支持 3D 摄像机。…

2023_Spark_实验七:Scala函数式编程部分演示

1、Scala中的函数 在Scala中&#xff0c;函数是“头等公民”&#xff0c;就和数字一样。可以在变量中存放函数&#xff0c;即&#xff1a;将函数作为变量的值&#xff08;值函数&#xff09;。 def myFun1(name:String):String"Hello " nameprintln(myFun1("…