vue的模板语法(下篇)

目录

一.事件处理

二.表单的综合案例

三.组件通信⭐⭐

 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.mzph.cn/news/83672.shtml

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

相关文章

踩坑:Invalid character found in method name. HTTP method names must be tokens

一、原因 在进行本地小程序与服务端请求时,由于加了签名认证,访问接口时报错 Spring boot端 小程序端 二、解决方案 2.1 更改访问路径 将https:更换成http: 示例:https://localhost:8080 改为 http://localhost:8080 2.2其他原因 ssl证书到期了Tomcat的header缓冲区大小不…

2023数学建模国赛游记

第一参加数学建模国赛&#xff0c;大概也是最后一次参加了&#xff0c;记录一下这几天的历程吧。 我们队的情况是计算机电气数统&#xff0c;计算机负责编程&#xff0c;电气学院的负责论文部分&#xff0c;数统的同学负责建模&#xff0c;数据处理部分我们是共同承担。 第一天…

秦丝9周年 | 各行业实体生意如何实现数字化转型?

近期&#xff0c;北京、深圳、天津、重庆等全国27个省都在推进“一刻钟便民生活圈”——以社区居民为服务对象&#xff0c;在步行15分钟左右的范围内&#xff0c;满足居民日常生活基本消费和品质消费。 而各行业的实体店是这个“圈”中的重要组成部分&#xff0c;很多入驻的实…

【使用Cpolar将Tomcat网页传输到公共互联网上】

文章目录 1.前言2.本地Tomcat网页搭建2.1 Tomcat安装2.2 配置环境变量2.3 环境配置2.4 Tomcat运行测试2.5 Cpolar安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 Tomcat作为一个轻量级的服务器&#xff0c;不仅名字很有趣&#…

pdfjs解决ie浏览器预览pdf问题

pdfjs是一个js库&#xff0c;可以将pdf文件用canvas重新绘制&#xff0c;从而无需借助pdf读取插件就可以直接预览。 目前chrome内核的浏览器已内置pdf读取插件&#xff0c;但ie浏览器还没有。而我们最近在做的一个项目使用对象是医院&#xff0c;使用的浏览器竟然还是ie。所以我…

Python 数据分析学习路线

Python 数据分析学习路线 第一阶段&#xff1a;Python语言基础第二阶段&#xff1a;数据采集和持久化第三阶段&#xff1a;数据分析第四阶段&#xff1a;数据挖掘与机器学习书籍介绍参与方式 第一阶段&#xff1a;Python语言基础 在学习数据分析之前&#xff0c;首先需要掌握P…

iOS加固保护技术:保护你的iOS应用免受恶意篡改

目录 转载&#xff1a;开始使用ipaguard 前言 下载ipa代码混淆保护工具 获取ipaguard登录码 代码混淆 文件混淆 IPA重签名与安装测试 转载&#xff1a;开始使用ipaguard 前言 iOS加固保护是直接针对ios ipa二进制文件的保护技术&#xff0c;可以对iOS APP中的可执行文件…

【操作系统笔记】内存分配

内存对齐 问题&#xff1a;为什么需要内存对齐呢&#xff1f; 主要原因是为了兼容&#xff0c;为了让程序可以运行在不同的处理器中&#xff0c;有很多处理器在访问内存的时候&#xff0c;只能从特定的内存地址读取数据。换个说法就是处理器每次只能从内存取出特定个数字节的数…

ClickHouse与Elasticsearch比较总结

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

云原生的简单理解

一、何谓云原生&#xff1f; 一种构建和运行应用软件的方法 应用程序从设计之初即考虑到云的环境&#xff0c;原生为云而设计&#xff0c;在云上以最佳姿势运行&#xff0c;充分利用和发挥云平台的弹性分布式优势。 二、包括以下四个要素 采用容器化部署&#xff1a;实现云平…

el-table表格中加入输入框

<template><div class"box"><div class"btn"><el-button type"primary">发送评委</el-button><el-button type"primary" click"flag true" v-if"!flag">编辑</el-button…

win系统环境搭建(九)——Windows安装chatGPT

windows环境搭建专栏&#x1f517;点击跳转 win系统环境搭建&#xff08;九&#xff09;——Windows安装chatGPT 本系列windows环境搭建开始讲解如何给win系统搭建环境&#xff0c;本人所用系统是腾讯云服务器的Windows Server 2022&#xff0c;你可以理解成就是你用的windows…

全球南方《乡村振兴战略下传统村落文化旅游设计》许少辉八一著辉少许

全球南方《乡村振兴战略下传统村落文化旅游设计》许少辉八一著辉少许

Unity云原生分布式运行时

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

倒计时列表实现(小程序端Vue)

//rich-text主要用来将展示html格式的&#xff0c;可以直接使用这个标签 <view class"ptBox" v-for"(item,index) in orderList" :key"index"> <rich-text :nodes"item.limit_time|limitTimeFilter"></rich-text>…

2023_Spark_实验十二:Spark高级算子使用

掌握Spark高级算子在代码中的使用 相同点分析 三个函数的共同点&#xff0c;都是Transformation算子。惰性的算子。 不同点分析 map函数是一条数据一条数据的处理&#xff0c;也就是&#xff0c;map的输入参数中要包含一条数据以及其他你需要传的参数。 mapPartitions函数是一个…

网络编程day03(UDP中的connect函数、tftp)

今日任务&#xff1a;tftp的文件上传下载&#xff08;服务端已经准备好&#xff09; 服务端&#xff08;已上传&#xff09; 客户端&#xff1a; 代码&#xff1a; #include <stdio.h> #include <string.h> #include <stdlib.h> #include <sys/types.h…

编译工具:CMake(八) | cmake 常用指令

编译工具&#xff1a;CMake&#xff08;八&#xff09; | cmake 常用指令 基本指令 基本指令 ADD_DEFINITIONS向 C/C编译器添加-D 定义&#xff0c;比如:ADD_DEFINITIONS(-DENABLE_DEBUG-DABC)&#xff0c;参数之间用空格分割。 如果你的代码中定义了#ifdef ENABLE_DEBUG #end…

Java 调用 GitLabAPI 获取仓库里的文件件 提交记录

1. 需求 项目组 需要做统计&#xff0c;获取每个开发人员的代码提交次数&#xff0c;提交时间&#xff0c;提交人等等&#xff0c;因代码在GitLab上管理&#xff0c;所以需要调用GitLabAPI来获取。 2. 开发 API官网&#xff1a;https://docs.gitlab.com/ee/api/ 2.1 创建自…

java Spring Boot验证码美化,白色背景 随机四个数 每个字随机颜色

我前文 Spring Boot2.7生成用于登录的图片验证码讲述了生成验证码的方法 但是这样生成验证码 非常难看 比较说 验证码是要展示到web程序中的 这样让用户看着 属实不太好 我们可以将接口改成 GetMapping(value "/captcha", produces MediaType.IMAGE_PNG_VALUE) …