数据驱动视图:
在网页中,form 表单负责采集数据,Ajax 负责提交数据。
注意:数据驱动视图和双向数据绑定的底层原理是 MVVM(Mode 数据源、View 视图、ViewModel 就是 vue 的实例)
v-text 指令的缺点:会覆盖元素内部原有的内容!{{ }} 插值表达式:在实际开发中用的最多,只是内容的占位符,不会覆盖原有的内容!v-html 指令的作用:可以把带有标签的字符串,渲染成真正的 HTML 内容!注意:插值表达式只能用在元素的内容节点中,不能用在元素的属性节点中!
在 vue 中,可以使用 v-bind: 指令,为元素的属性动态绑定值;
简写是英文的 :
在使用 v-bind 属性绑定期间,如果绑定内容需要进行动态拼接,则字符串的外面应该包裹单引号,例如:
<div :title="'box' + index">这是一个 divdiv>
v-on: 简写是 @
语法格式为:
<button @click="add">button>
methods: {
add() {
// 如果在方法中要修改 data 中的数据,可以通过 this 访问到
this.count += 1
}
}
$event 的应用场景:如果默认的事件对象 e 被覆盖了,则可以手动传递一个 $event。例如:
<button @click="add(3, $event)">button>
methods: {
add(n, e) {
// 如果在方法中要修改 data 中的数据,可以通过 this 访问到
this.count += 1
}
}
事件修饰符:
.prevent
<a @click.prevent="xxx">链接a>
.stop
<button @click.stop="xxx">按钮button>
v-show 的原理是:动态为元素添加或移除 display: none 样式,来实现元素的显示和隐藏
v-if 的原理是:每次动态创建或移除元素,实现元素的显示和隐藏
在实际开发中,绝大多数情况,不用考虑性能问题,直接使用 v-if 就好了!!!
v-if 指令在使用的时候,有两种方式:
直接给定一个布尔值 true 或 false
<p v-if="true">被 v-if 控制的元素p>
给 v-if 提供一个判断条件,根据判断的结果是 true 或 false,来控制元素的显示和隐藏
<p v-if="type === 'A'">良好p>
key值管理可复用的元素
<template v-if="loginType === 'username'">
<label>Username</label>
<input placeholder="Enter your username" key="username-input">
</template>
<template v-else>
<label>Email</label>
<input placeholder="Enter your email address" key="email-input">
</template>
v-for列表渲染
我们可以用 v-for 指令基于一个数组来渲染一个列表。v-for 指令需要使用 item in items 形式的特殊语法,其中 items 是源数据数组,而 item 则是被迭代的数组元素的别名。
<ul id="example-2">
<li v-for="(item, index) in items">
{{ parentMessage }} - {{ index }} - {{ item.message }}
</li>
</ul>
建议给每个v-for提供一个唯一的key属性,既提升性能,又防止列表状态絮乱
1.key值只能是字符串或数字
2.具有唯一性
3.使用index做key没有任何意义
① 能够知道 vue 的基本使用步骤
⚫ 导入 vue.js 文件
⚫ new Vue() 构造函数,得到 vm 实例对象
⚫ 声明 el 和 data 数据节点
⚫ MVVM 的对应关系
② 掌握 vue 中常见指令的基本用法
⚫ 插值表达式、v-bind、v-on、v-if 和 v-else
⚫ v-for 和 :key、v-model