vue 点击li 中的img 怎么不冒泡_Vue全解
一.Vue实例
内存图:
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模板)语法:
- 展示内容:
表达式
★{{ 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-挂载点
可用$mount代替
- data-内部数据(支持对象和函数优先用函数)
main.js
对象的方式
函数的方式
浏览器
- methods-方法(事件处理函数或者普通函数)
main.js
浏览器
- components-Vue组件(注意大小写,组件内的data必须以函数的形式显示)
main.js
demo.vue的内容
浏览器渲染
或者
main.js
浏览器渲染
- 四个钩子(created,mounted,updated,destroyed)
★created-实例出现在内存中
★mounted-实例出现在页面中
★updated-实例更新了
★destroyed-实例从页面和内存中消亡了
main.js
Demo.vue
浏览器渲染
- props-外部数据属性
main.js
message="n"(传入字符串)
:message="n"(传入this.n数据)
:fn("add")传入this.add函数
Demo.vue
浏览器渲染
!重要议题------数据响应式
深入响应式原理 — Vue.jscn.vuejs.org
Object.defineProperty()developer.mozilla.org
- 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的所有属性进行监控
当data不存在object.b时的解决方法:
★把key声明好
★使用Vue.set或者this.$set
data中有数组怎么办?:
变更方法cn.vuejs.org
(2)进阶属性
- computed-计算属性(会根据依赖是否变化来缓存)
★如果依赖的属性没有变化就不会重新计算
★getter/setter默认不会做缓存,Vue做了特殊处理
列表展示:
- watch-侦听属性(当数据变化时执行一个函数)
watchcn.vuejs.org
deep:true是干什么的?
★object.a变了如果让object也变了,设置deep:true
★object.a变了如果让object没有变,设置deep:false
★deep的意思是监听object的时候是否往深了看
- directive-自定义指令属性
自定义指令函数cn.vuejs.org
声明一个局部指令
声明一个全局指令
- mixins-混入属性(混入就是复制)
示例:
main.js
app.vue
components/Child1.vue
mixins/log.js
浏览器渲染:
选项智能合并等更多mixins描述cn.vuejs.org
- extends-继承属性
MyVue.js
/
Child1.vue
- provide和inject-提供和注入
main.js
App.vue
<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...
ChangeThemeButton.vue
浏览器渲染
vue 点击li 中的img 怎么不冒泡_Vue全解相关推荐
- vue点击ul中的li显示,点击其他地方隐藏
vue点击ul中的li显示弹框,点击其他地方隐藏弹框 注意:ref="seatTipOperation" <ulref="seatTipOperation" ...
- python100个必背知识-python编程面试中必考的知识点,数据类型全解,笔记超全面...
原标题:python编程面试中必考的知识点,数据类型全解,笔记超全面 python作为一门高级编程语言,它的定位是优雅.明确和简单.阅读Python编写的代码感觉像在阅读英语一样,这让使用者可以专注于 ...
- python面试必考知识点_python编程面试中必考的知识点,数据类型全解,笔记超全面...
原标题:python编程面试中必考的知识点,数据类型全解,笔记超全面 python作为一门高级编程语言,它的定位是优雅.明确和简单.阅读Python编写的代码感觉像在阅读英语一样,这让使用者可以专注于 ...
- 全方位地介绍JavaScript开发中的各个主题《JavaScript编程全解》(好书分享更新中)
JavaScript编程全解 作者: [日]井上诚一郎 / [日]土江拓郎 / [日]滨边将太 出版社: 人民邮电出版社 译者: 陈筱烟 内容简介 · · · · · · 本书全方位地介绍了Java ...
- Vue 点击table中的某列,带参数跳转到另外一个页面
1.在template的table的列上绑定一个单击事件 <el-table-column :label="$t('monitor.alarms')" width=" ...
- vue点击事件中的this指向问题
singlecheck[i].addEventListener("click", ()=>{console.log(this.indexs)if(singlecheck[i] ...
- 与虫子尾交3d动画网站_PPT中最酷的效果 —— 3D模型全解
Hello,大家好,我是利兄~ 前两天一个客户问我,该如何用PPT制作超级震撼的3D效果? 我突然发现,对于PPT种的3D玩法,我好像一直没有讲过,今天我们就来详细的聊聊这个PPT中的逆天功能. 先温 ...
- C/C++编程笔记:浅析 C 语言中宏定义的使用,知识点全解
宏定义是用一个标识符来表示一个字符串,在宏调用中将用该字符串代替宏名.给程序员提供了便利,使程序更加清晰,便于阅读和理解,进一步提高了程序的运行效率,对于嵌入式系统而言,为了能达到性能要求,宏是一种很 ...
- Java中Arrays数组工具类的使用全解
本文几乎涵盖了所有的Arrays工具类(基于Java 11)的方法以及使用用例,一站式带你了解Arrays类的用法,希望对大家有帮助. 码字不易,三连支持一下吧
最新文章
- 数据库防火墙onefirewall,如何防范黑客物理删除?避免携程事件再次上演
- swing LayoutManager 和多态
- waf可以查看post请求吗_WAFNinja:一款绕过WAF的渗透工具
- 服务器显示AL024是什么意思,中牟县家具木工机械维修台达驱动器al024故障分分钟修复...
- 记一篇矫正牙齿、蛀牙(烂牙)。从小保护牙齿_(六龄齿封窝)
- mysql $gt_mysql变量(用户+系统)
- 在win10上使用Vmware安装Mac OS
- 爱立信携手沃达丰完成英国首个5G独立组网网络切片试验
- css未生效,css不生效是什么原因
- python提高——进程、线程、协程对比及代码实现
- linux查找文件夹名称
- github创建代码仓库并上传代码
- mybatis逻辑删除
- 王菲 单行道 今天忽然听
- tkinter尤克里里爬格子练习器
- APICloud进行窗口和页面操作
- 关于cocos2dx 3.0 跳转场景
- JavaScript 的防抖与节流
- 插入排序超详细讲解C语言
- IntelliJ IDEA 2018版本操作总结(长期更新)
热门文章
- 主机ssh升级到6.7以上版本后,使用jsch jar包ssh连接不上报Algorithm negotiation fail问题的解决办法
- Linux Shell脚本专栏_一键查看服务器的利用率_04
- 修改Tomcat默认的端口
- Java-值传递和引用传递
- 查看计算机或网络资源列表的命令,dos命令net view图文教程,显示网络计算机列表查看共享资源...
- linux下进程调度模拟程序,linux认证辅导:linux进程调度模拟怎么做?
- 查一个字段中字符集超过30的列_详细解读MySQL的30条军规
- git拉取项目以及提交项目
- 命令启动jar包_java项目打jar包,一句命令搞定
- NPER用计算机怎么算,计算机财务管理第三章详解.doc