这里是前端程序员小张🫡
创作不易,希望各位大佬支持一下🌟
最基本的数据绑定形式是文本插值,它使用的是“Mustache”语法 (即双大括号):
msg
属性的值。同时每次 msg
属性更改时它也会同步更新。Message: {{ msg }}
计数双倍: {{ counter * 2 }}
{{ age >= 18? "成年人": "未成年人" }}
{{ formatDate(time) }}
.prevent
:阻止默认事件
.stop
:阻止事件冒泡
.once
:事件只触发一次
.capture
:使用事件的捕获模式
.self
:只有event.target是当前操作的元素时才触发事件
.passive
:事件的默认行为立即执行,无需等待事件回调执行完毕
v-once指令:
v-text
用于更新元素的 textContent
默认情况下,如果我们展示的内容本身是 html 的,那么vue并不会对其进行特殊的解析。
v-pre指令:
Vue中有两种数据绑定的方法:
举个栗子:点击按钮切换图片
切换图片
const app = Vue.createApp({data: function() {return {imgUrl: "http://p1.music.126.net/ZFbOIU8B4pgb9vGi6BB89A==/109951168476332689.jpg?imageView&quality=89"}},methods: {switchImage:function() {this.imgUrl ="http://p1.music.126.net/bm5wMgi70vLvrfnB_WKgiA==/109951168476319139.jpg?imageView&quality=89"}}
})
app.mount("#app")
举个栗子:v-bind直接绑定对象
hello world
Function | Inline Statement | Object (不带参数)
event
(使用对象语法则为可选项).stop
——调用 event.stopPropagation()
。.prevent
——调用 event.preventDefault()
。.capture
——在捕获模式添加事件监听器。.self
——只有事件从元素本身发出才触发处理函数。.{keyAlias}
——只在某些按键下触发处理函数。.once
——最多触发一次处理函数。.left
——只在鼠标左键事件触发处理函数。.right
——只在鼠标右键事件触发处理函数。.middle
——只在鼠标中键事件触发处理函数。.passive
——通过 { passive: true }
附加一个 DOM 事件。当通过methods中定义方法,以供@click调用时,需要注意参数问题:
$event
传入事件在表单输入元素或组件上创建双向绑定。
期望的绑定值类型:根据表单输入元素或组件输出的值而变化
仅限
修饰符:
.lazy
.number
——将输入的合法符串转为数字
.trim
——移除输入内容两端空格
基于原始数据多次渲染元素或模板块。
alias in expression
为正在迭代的元素提供一个别名v-for
与数组我们可以使用v-for
指令基于一个数组来渲染一个列表。v-for
指令的值需要使用item in items
形式的特殊语法,其实items
是源数据的数组,而item
是迭代器的别名:
data() {return {names:["BAEK HYUN","SUHO","SEHUN"]}
}
{{name}}
在v-for
块中可以完整地访问父级作用域内的属性和变量。v-for
也支持可以使用可选的第二个参数表示当前项的位置索引。
{{index}}--{{name}}
v-for
与对象我们也可以使用v-for
来遍历一个对象的所有属性。遍历的顺序会基于对该对象调用object.keys()
的返回值来决定。
data() {return {person: {name: 'SEHUN',age:30,occupation:'singer'}}
}
- {{value}}
可以通过提供第二个参数表示属性名:
- {{key}}:{{value}}
第三个参数表示位置索引:
- {{index}}-{{key}}:{{value}}
v-for
里使用范围值v-for
可以直接接受一个整数值。在这种用例中,会将该模块基于1.....n
的取值范围重复多次。
{{ n }}
虚拟DOM:就是一个普通的 JavaScript 对象,包含了 tag
、props
、children
三个属性,以这三个属性来描述一个DOM节点,每组描述就是一个VNode,整个VNode的集合就是一个虚拟DOM树。
当有一大堆的元素时,他们就会形成一个VNode Tree
VDOM
其实就是多个 VNode
组成的树结构,这就好比 HTML
元素和 DOM
树之间的关系:多个 HTML
元素能够组成树形结构就称之为 DOM
树.
在使用v-for进行列表渲染时,我们通常会给元素或者组件绑定一个key属性,key是给每个VNode的唯一id,也是diff算法的一种优化策略,可以根据key,更准确,更快的找到对应的VNode节点。
v-if、v-else、v-else-if用于根据条件来渲染某一块的内容:
v-show
v-show和v-if的用法看起来是一致的,也是根据一个条件决定是否显示元素或者组件。