vue 点击li 中的img 怎么不冒泡_Vue全解

一.Vue实例

内存图:

0a85c0b5bb0cf23102108762a11de666.png
1.把Vue的实例命名为vm,vm对象封装了对视图的所有操作包括数据读写、事件绑定、DOM更新
2.vm的构造函数是Vue,按照ES6的说法vm所属的类是Vue
3.options是new Vue的参数一般称为选项构造选项

1.options里面有什么

  • 英文文档搜options中文文档搜选项即可得相关所有文档
  • options的五类属性
★数据:data,props,propsData,computed,methods,watch
★Dom:el,template,render,renderError
★生命周期钩子:beforeCreate,created,beforeMount,mounted,beforeUpdate,updated,activated,deactivated,beforeDestroy,destroyed,errorCaptured
★资源:directives,filters,components
★组合:parent,mixins,extends,provide,inject
★其他

template(HTML模板)语法:

4179b9b98f231b9dd7ea641d74178f44.png

b8c4ae4f2448d5253b1401c49a0a0e52.png

336bd625db9632907398d9bea2ab2d41.png
  1. 展示内容:

表达式

★{{ object.a }}表达式

★{{ n+1 }}可以写任何运算符

★{{ fn(n) }}可以调用函数

★如果值为undefined或者null就不显示

★另一种写法为<div v-text="表达式"></div>

HTML内容

★假设data.x的值为<strong>hi</strong>

★<div v-html="data.x"></div>即可显示粗体的hi

我就想展示{{ n }}

★<div v-pre>{{ n }}</div>

★v-pre不会对模板进行编译

2.绑定属性:

★绑定src:<img v-bind:src="x"/>

★v-bind:简写为:<img :src="x"/>

★绑定对象:
<div :style="{border:'1px solid red',height:100}"</div>
//注意这里把'100px’写成100

3.绑定事件:

★v-on:事件名

<button v-on:click="add">+1</button>//点击之后,Vue会运行add()
<button v-on:click="xxx(1)">xxx</button>//点击之后,Vue会运行xxx(1)
<button v-on:click="n+=1">xxx</button>//点击之后,Vue会运行n+=1
//即发现函数就加括号调用之,否则直接运行代码

★缩写

<button @click="add">+1</button>//正常人都用缩写

4.条件判断:

★if...else

<div v-if="x>0">x大于0</div>
<div v-else-if="x===0">x等于0</div>
<div v-else>x小于0</div>

5.循环:

★for(value,key) in 对象或数组

<ul>
<li v-for="(u,index) in users" :key="index">
索引:{{index}} 值{{u.name}}
</li>
</ul>
<ul>
<li v-for="(value, name) in obj" :key="name">
属性名:{{name}} 属性值:{{value}}
</li>
</ul>

6.显示、隐藏

★v-show

<div v-show="n%2===0"> n 是偶数</div>

★近似等于

<div :style="{display:n%2===0?'block':'none'}
"> n是偶数 </div>
其他指令​cn.vuejs.org

7.指令

★什么是指令

<div v-text="x"></div>
<div v-html="x"></div>
//以v-开头的就是指令

★语法

v-指令名:参数=值,如v-on:click-prevent

8.修饰符

★有些指令支持修饰符

@click.stop=="add"//表示阻止事件传播/冒泡
@click.prevent=="add"//表示阻止默认动作
@click.stop.prevent=="add"//同时表示两种意思

★一共有多少修饰符呢

v-on支持的有.{keycode|keyAlias}.stop.prevent.capture.self.once.passive.native
快捷键相关:.ctrl.alt.shift.meta.exect
鼠标相关:.left.right.middle
v-bind支持的有:.prop.camel.sync
v-model支持的有:.lazy.number.trim

总结:

★Vue模板主要特点有

使用XML语法(不是HTML)
使用{{}}插入表达式
使用v-bind,v-on,v-html等指令操作DOM
使用v-if,v-for等指令实现条件判断与循环

(1)入门属性

  • el-挂载点

fed4fc1c4e461ae11f0e856cf8db00ed.png

可用$mount代替

d4003eabe3a270ec0b1ac124894fbd35.png
  • data-内部数据(支持对象和函数优先用函数)

main.js

对象的方式

e236f7e3b08795b7ce2965208298167d.png

函数的方式

7fccec7eaff2c0e8ebb6820d56256d88.png

浏览器

3087b3548b0ea358afd3d8170d8e99b6.png
  • methods-方法(事件处理函数或者普通函数)

main.js

165f7647cc542547f8206db51927ab5b.png

浏览器

c860edcbd42e4ac61d59a15078432c42.png
  • components-Vue组件(注意大小写,组件内的data必须以函数的形式显示)

main.js

b2b7c5e8f0c194bd1a28475b912411fb.png

demo.vue的内容

d9ffff6aecbdde9ab83614ce267047a3.png

浏览器渲染

63570a51d1322b24b91170c302f07120.png

或者

main.js

aff05c61622e5919924f3134ce608d5b.png

浏览器渲染

41b29821fe24b4467481c8bf8d6c586b.png
  • 四个钩子(created,mounted,updated,destroyed)

★created-实例出现在内存中

★mounted-实例出现在页面中

★updated-实例更新了

★destroyed-实例从页面和内存中消亡了

main.js

7d62b85f35250bb7adbbf573093a5551.png

Demo.vue

7ab061e26bc9e320146b132a7be55230.png

浏览器渲染

25f37fa1f504d1d6b5d3ad5281749b49.png

1a292c1478dfd45031f6ffdfb4290a4e.png
  • props-外部数据属性

main.js

message="n"(传入字符串)

:message="n"(传入this.n数据)

:fn("add")传入this.add函数

6e31f890186cc710698a1bc34649d5e0.png

Demo.vue

3501887afe28e693fa3220a18181edea.png

浏览器渲染

9b111453f284cb82cfa6ae1d4308facf.png

!重要议题------数据响应式

深入响应式原理 — Vue.js​cn.vuejs.org
70633a4181abf3d28c78ab109d1b8a5c.png
Object.defineProperty()​developer.mozilla.org
e68304a092bcf44b6c9456db5d0f7bc5.png
  1. Object.defineProperty

★可以给属性添加value

★可以给对象添加getter/setter

★getter和setter用于对属性的读写和监控

2.代理(设计模式)

★对myData对象的属性进行读写,全权由另一个vm负责

★vm就是myData的代理(类比房东租房)

★比如myData.n不用非要用vm.n来操作myData.n

3.vm=new Vue({data:myData})

★会让vm成为myData的代理(proxy)

★会对myData的所有属性进行监控

a0c924635a101ca890200d1c94236684.png

当data不存在object.b时的解决方法:

★把key声明好

★使用Vue.set或者this.$set

4e2b7072b3acebe77a12591216bdaecf.png

data中有数组怎么办?

变更方法​cn.vuejs.org

69bff07221421f43960d4585ffde1f63.png

(2)进阶属性

  • computed-计算属性(会根据依赖是否变化来缓存)

★如果依赖的属性没有变化就不会重新计算

★getter/setter默认不会做缓存,Vue做了特殊处理

4382a8af3ec878b359049d75ce5d8876.png

127cbde7de8fdd031695b89b2cdc0d8a.png

列表展示:

ddfdab5b4fa15d828fe91df5bfb4d69f.png

a8cf5c35645a4b07b321f836ab4cc8d3.png
  • watch-侦听属性(当数据变化时执行一个函数)

9a9d9a3bc823724e186f5344be7e8023.png

9d2ee49a51ac74abfc8c38858799601a.png
watch​cn.vuejs.org

deep:true是干什么的?

★object.a变了如果让object也变了,设置deep:true

★object.a变了如果让object没有变,设置deep:false

★deep的意思是监听object的时候是否往深了看

  • directive-自定义指令属性
自定义指令函数​cn.vuejs.org

af9522c2ff59503ced682a5a4e4ed0b6.png

a470a54a07e1e401b33e81606298b2b7.png

声明一个局部指令

511ba137ade7cb347cbbccdc5c8b9fb4.png

62cc22c24414783c279000ba9abddffc.png

声明一个全局指令

b5b4394764529dc146527b98eb99d6b8.png

4550ca089f0d84154c7e75a477f02763.png
  • mixins-混入属性(混入就是复制)

示例:

main.js

5ee61c97b9e31e930233945dec4d1e18.png

app.vue

8f99c1b0f831f48dad7078945ac8f713.png

81369ca6ec373151964ca8f01d9cadf8.png

components/Child1.vue

bb3a9fdb73c974665c6dd2fa74e2c656.png

mixins/log.js

913fc1567a5638219b1b92383693a135.png

浏览器渲染:

bb16ba304b46ae8f9ac36a3cdd96b108.png

d9548026b44d9bb7f1affb40a70d754a.png
选项智能合并等更多mixins描述​cn.vuejs.org
  • extends-继承属性

d0297a02981a9a2d8f4d80e00d4a9a90.png

02dc290b1f181eae069752fd2942537d.png

MyVue.js

e8177d806a47c8b388105967f7293751.png

/

12ef7f7b198e01f17f20a479565259a3.png

Child1.vue

bc3254720843d585851752c399530714.png
  • provide和inject-提供和注入

main.js

b334ce0363fec2cdf8870fa7dd4ca4e9.png

App.vue

27a7ea31baa2304e2906c96d07692801.png

283559e7d38d8a8d2d0ad4bf938217d9.png

1b6a18a737bf480561391249ee725e85.png
<style>
.app {font-family: "Avenir", Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;margin-top: 60px;
}
.app.theme-blue button {background: blue;color: white;
}
.app.theme-blue {color: darkblue;
}.app.theme-red button {background: red;color: white;
}
.app.theme-red {color: darkred;
}
.app.fontSize-normal {font-size: 16px;
}
.app button {font-size: inherit;
}
.app.fontSize-small {font-size: 12px;
}
.app.fontSize-big {font-size: 20px;
}
</style>

Child1.vue/Child2.vue...

b90ff01382064b5a16f27b29ec983bc8.png

ChangeThemeButton.vue

0594f99f2a86b1f7b85af7a522a5accd.png

浏览器渲染

20be9f42c67f7af7b114ee050ee19188.png

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

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

相关文章

terminal services 找不到_电脑局域网中查看不到其他计算机或无法连接的解决办法...

在办公环境中&#xff0c;电脑经常需要打开网络&#xff0c;进行一些文件共享的操作&#xff0c;但是有时会出现很多无法共享的情况&#xff0c;之前有一篇文章讲过解决办法&#xff0c;今天再来将一下具体无法共享的错误提示和相对应的处理方法&#xff0c;主要有以下几种情况…

如何避免mysql回表查询_mysql如何避免回表查询

《迅猛定位低效SQL&#xff1f;》留了一个尾巴&#xff1a;select id,name where name‘shenjian‘select id,name,sexwhere name‘shenjian‘多查询了一个属性&#xff0c;为何检索过程完全不同&#xff1f;什么是回表查询&#xff1f;什么是索引覆盖&#xff1f;如何实现索引…

springmvc的工作原理_SpringMVC工作原理

1 简介SpringMVC框架是以请求为驱动&#xff0c;围绕Servlet设计&#xff0c;将请求发给控制器&#xff0c;然后通过模型对象&#xff0c;分派器来展示请求结果视图。其中核心类是DispatcherServlet&#xff0c;它是一个Servlet&#xff0c;顶层是实现的Servlet接口。2 运行原理…

跨站点请求伪造_十大常见web漏洞——跨站点请求伪造(CSRF)

CSRF介绍什么是CSRF呢&#xff1f;我们直接看例子。https://mp.toutiao.com/profile_v3/graphic/preview?dodelete&pgc_id6829574701128352260这个URL是头条删除pgc_id为6829574701128352260的一篇文章的连接&#xff0c;通过执行这个URL用户就可以删除这篇文章。首先攻击…

unique函数_C++核心准则C.35:基类的析构函数必须满足的条件

C.35: A base class destructor should be either public and virtual, or protected and nonvirtual基类的析构函数要么是公开的虚函数&#xff0c;要么是保护的非虚函数Reason(原因)To prevent undefined behavior. If the destructor is public, then calling code can atte…

java jta 例子_Java事务处理全解析(八)——分布式事务入门例子(Spring+JTA+Atomikos+Hibernate+JMS)...

在本系列先前的文章中&#xff0c;我们主要讲解了JDBC对本地事务的处理&#xff0c;本篇文章将讲到一个分布式事务的例子。请通过以下方式下载github源代码&#xff1a;本地事务和分布式事务的区别在于&#xff1a;本地事务只用于处理单一数据源事务(比如单个数据库)&#xff0…

垂直串联六关节机器人调试手册_工业机器人有哪些应用你知道吗?

目前&#xff0c;工业机器人大部分集中于传统的焊接、喷涂等领域&#xff0c;我国工业机器人的核心部件和整机市场仍被国外垄断&#xff0c;工业机器人要面向整个智能制造市场&#xff0c;还需要具备应对整个智能制造过程中大多数工艺的能力&#xff0c;而工业互联网则是实现智…

java 生成校验验证码_java生成验证码并进行验证

一实现思路使用BufferedImage用于在内存中存储生成的验证码图片使用Graphics来进行验证码图片的绘制&#xff0c;并将绘制在图片上的验证码存放到session中用于后续验证最后通过ImageIO将生成的图片进行输出通过页面提交的验证码和存放在session中的验证码对比来进行校验二、生…

yy自动语音接待机器人_智能语音机器人落地产品有哪些?

据相关研究报告表明&#xff0c;在众多人工智能落地产品或者应用场景中&#xff0c;智能语音机器人无论从产品的成熟度还是应用的广泛度来说&#xff0c;都是人工智能行业最热门和最有前景的产品。智能语音机器人并不只是一款产品&#xff0c;它是所有智能语音系列产品的统称&a…

java资源文件获取属性_Java读写资源文件类Properties

Java中读写资源文件最重要的类是Properties1) 资源文件要求如下:1、properties文件是一个文本文件2、properties文件的语法有两种&#xff0c;一种是注释&#xff0c;一种属性配置。注 释&#xff1a;前面加上#号属性配置&#xff1a;以“键值”的方式书写一个属性的配置信息…

java被放弃了_为什么学Java那么容易放弃?

学习Java确实很容易就放弃&#xff0c;但是也很容易就学好&#xff0c;因为大多数人都是抱着试一试的心态&#xff0c;然后当后面就坚持不下去但是回过头来想一想&#xff0c;打游戏上分容易吗&#xff0c;一样是磕磕碰碰的&#xff0c;有时候十几连跪都不会放弃你上分的心情。…

java编程50_java经典50编程题(1-10)

1.有一对兔子从出生后第三个月起&#xff0c;每个月都生一对小兔子&#xff0c;小兔子长到三个月后每个月又生一对兔子&#xff0c;假设兔子不死亡&#xff0c;问每个月兔子的总数为多少&#xff1f;分析过程图片发自简书App示例代码图片发自简书App运行结果图片发自简书App反思…

超大规模集成电路_纳米级超大规模集成电路芯片低功耗物理设计分析(二)

文 | 大顺简要介绍了功耗的组成&#xff0c;在此基础上从工艺、电路、门、系统四个层面探讨了纳米级超大规模集成电路的低功耗物理设计方法。关键词&#xff1a;纳米级&#xff1b;超大规模集成电路&#xff1b;电路芯片&#xff1b;电路设计02纳米级超大规模集成电路芯片低功耗…

outlook反应慢的原因_保险管怎么区分慢熔和快熔?

保险丝快熔与慢熔的区别所有双帽;对于这样的产品特性和安全性熔丝; gG的”&#xff0c;即&#xff0c;与接触帽组合接触;即&#xff0c;所述双(内/外盖)的盖。和一般的小型或地下加工厂&#xff0c;以便执行切割角&#xff0c;降低生产成本&#xff0c;这将选择单个帽铆接“单&…

word 通配符_学会Word通配符,可以帮助我们批量处理好多事情

长文档需要批量修改或删除某些内容的时候&#xff0c;我们可以利用Word中的通配符来搞定这一切&#xff0c;当然&#xff0c;前提是你必须会使用它。通配符的功能非常强大&#xff0c;能够随意组合替换或删除我们定义的规则内容&#xff0c;下面易老师就分享一些关于查找替换通…

java 运行 出现选择_Eclipse 运行出现java.lang.NoClassDefFoundError的解决方法

上篇博文也提到了这个问题&#xff0c;但没有深入的讲解。这次特意做了整理&#xff0c;详细解释其原因。先看错误java.lang.NoClassDefFoundError&#xff0c;显然是java虚拟机找不到指定的类&#xff0c;多数情况下是外部jar中的类。Eclipse的自动化&#xff0c;集成化&#…

设置熄屏_刚买的手机微信收不到信息提醒耽误事情,手机到手一定要这样设置...

手机使用过程中经常会遇到第三方软件接收不到信息提醒的状况&#xff0c;常常因此耽误了很多重要的事情&#xff0c;造成损失。特别是刚换新手机或者手机刚升级系统时发生的最多。一般都觉得是手机问题&#xff0c;其实只是手机的系统设置出现了问题&#xff0c;只要跟我按照以…

multipartfile 获取音频时长_抖音音频下载捷径:一键提取音频,安卓+ios全通用,完全免费...

本文相关&#xff1a;抖音音频提取、抖音音频快捷指令、捷径怎么获取抖音音乐…昨天有抖友分享了一个抖音短视频链接&#xff0c;告诉我&#xff0c;她很喜欢这个视频里的歌曲&#xff0c;但是在很多歌曲app上面却找不到相同的版本&#xff0c;然后就问我&#xff0c;有没有什么…

php windows共享内存,给PHP开启shmop扩展实现共享内存

这篇文章主要介绍了关于给PHP开启shmop扩展实现共享内存&#xff0c;有着一定的参考价值&#xff0c;现在分享给大家&#xff0c;有需要的朋友可以参考一下在项目开发中&#xff0c;想要实现PHP多个进程之间共享数据的功能&#xff0c;让客户端连接能够共享一个状态&#xff0c…

导入ansys的实体怎么进行parameter_ANSYS在线缆线束设计中的仿真应用

ANSYS采用ANSYS Maxwell、Q3D、Twin Builder等电磁仿真软件&#xff0c;从线缆线束设计、寄生参数RLCG提取、到系统电磁兼容提供了全面仿真分析。创建模型ANSYS在Maxwell软件基础上提出针对用户定制化的“线缆线束设计工具包”&#xff0c;帮助客户参数化建立特定几何模型&…