赞
踩
prevent:阻止默认事件
stop:阻止事件冒泡
once:事件只触发一次
capture:使用事件的捕获模式
self:只有event.target是当前操作的元素时才触发事件
passive:事件的默认行为立即执行,无需等待事件回调执行完毕
1.vue中常用的按键别名:
回车 => enter
删除=> delete
退出=> esc
空格=> space
换行=> tab (特殊,必须配合keydown去使用)
上下左右=> up down left right
2.vue未提供别名的按键,可以使用按键原始的key值去绑定,但注意要转为kebab-case(短横线命名)
v-once指令:
v-pre指令:
Function | Inline Statement | Object (不带参数)
event
(使用对象语法则为可选项).stop
——调用 event.stopPropagation()
。.prevent
——调用 event.preventDefault()
。.capture
——在捕获模式添加事件监听器。.self
——只有事件从元素本身发出才触发处理函数。.{keyAlias}
——只在某些按键下触发处理函数。.once
——最多触发一次处理函数。.left
——只在鼠标左键事件触发处理函数。.right
——只在鼠标右键事件触发处理函数。.middle
——只在鼠标中键事件触发处理函数。.passive
——通过 { passive: true }
附加一个 DOM 事件。Vue中有两种数据绑定的方法:
基本使用:
<div id="app"></div>
<!-- vue3允许template中有多个根元素 -->
<template id="my-app">
<img v-bind:src="imgUrl" alt="">
<br>
<a v-bind:href="link">哔哩哔哩</a>
</template>
<script src="../vue3/vue.js"></script>
<script>
const App = {
template: '#my-app',
data() {
return {
imgUrl:"https://profile.csdnimg.cn/1/6/8/0_qq_53664443",
link:"https://www.bilibili.com/"
}
}
}
Vue.createApp(App).mount('#app');
</script>
绑定class:
在表单输入元素或组件上创建双向绑定。
**期望的绑定值类型:**根据表单输入元素或组件输出的值而变化
仅限
<input>
<select>
<textarea>
修饰符:
.lazy
.number
——将输入的合法符串转为数字
.trim
——移除输入内容两端空格
基于原始数据多次渲染元素或模板块。
alias in expression
为正在迭代的元素提供一个别名v-for
与数组 我们可以使用v-for
指令基于一个数组来渲染一个列表。v-for
指令的值需要使用item in items
形式的特殊语法,其实items
是源数据的数组,而item
是迭代器的别名:
data() {
return {
names:["BAEK HYUN","SUHO","SEHUN"]
}
}
<li v-for="name in names">
{{name}}
</li>
在v-for
块中可以完整地访问父级作用域内的属性和变量。v-for
也支持可以使用可选的第二个参数表示当前项的位置索引。
<li v-for="(name,index) in names">
{{index}}--{{name}}
</li>
v-for
与对象我们也可以使用v-for
来遍历一个对象的所有属性。遍历的顺序会基于对该对象调用object.keys()
的返回值来决定。
data() {
return {
person: {
name: 'SEHUN',
age:30,
occupation:'singer'
}
}
}
<ul>
<li v-for="value in person">
{{value}}
</li>
</ul>
可以通过提供第二个参数表示属性名:
<ul>
<li v-for="(value,key) in person">
{{key}}:{{value}}
</li>
</ul>
第三个参数表示位置索引:
<ul>
<li v-for="(value,key,index) in person">
{{index}}-{{key}}:{{value}}
</li>
</ul>
v-for
里使用范围值v-for
可以直接接受一个整数值。在这种用例中,会将该模块基于1.....n
的取值范围重复多次。
<span v-for="n in 10">{{ n }}</span>
v-if
指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回真值时才被渲染。
v-else-if
v-else
v-show
区别:v-if当条件为false时,其对应的元素不会被渲染到DOM中
v-show元素不论是否需要显示到浏览器上,他的DOM实际都是有渲染的,只是通过CSS的display属性进行切换
v-show不支持template,并且不可以和v-else一起使用
VNode
与虚拟DOMVNode
的概念虚拟DOM:就是一个普通的 JavaScript 对象,包含了 tag
、props
、children
三个属性,以这三个属性来描述一个DOM节点,每组描述就是一个VNode,整个VNode的集合就是一个虚拟DOM树。
当有一大堆的元素时,他们就会形成一个VNode Tree
VDOM
其实就是多个 VNode
组成的树结构,这就好比 HTML
元素和 DOM
树之间的关系:多个 HTML
元素能够组成树形结构就称之为 DOM
树.
key
属性的作用在使用v-for进行列表渲染时,我们通常会给元素或者组件绑定一个key属性,key是给每个VNode的唯一id,也是diff算法的一种优化策略,可以根据key,更准确,更快的找到对应的VNode节点。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。