__102 vue 的模板语法

149 阅读2分钟

1.渲染数据

- 插值表达式

// 渲染数据
{{ msg }}
// 数字计算
{{ 1 + 1 }}
// 解析函数
{{ getData() }}
// 三元运算符
{{ flag ? '显示' : '隐藏' }}

- 解决插值表达式的页面闪烁问题

// 方式1  使用 v-text 代替 插值表达式
// 方式2  使用 v-cloak 配置显示隐藏的样式

- v-html

- v-text

- v-pre

2.属性绑定

- class 样式绑定

__ v-bind -string

v-bind:属性名称 = "属性值"
简写: :属性名称 = "属性值"

__ v-bind -普通数组

:class="['class1', 'class2', 'class3']"

__ v-bind -数组三元

:class="['class1', flag ? 'class2': '']"

__ v-bind -数组对象

:class="['class3', {class1: flag}, {class2: true}]"

__ v-bind -普通对象

:class="{class1: true, class2: false}"

- style 样式绑定

__ object

:style="obj"

__ array

:style="[obj1, obj2]"

- v-model 双向数据绑定

__ 数据流

单向数据绑定

model 改变, view 跟着改变,反之不能改变

双向数据绑定

model 改变, view 跟着改变,反之亦然

__ 小结

v-model 是 vue 中唯一1个可以使用双向数据绑定的指令,可以用在表单和组件

v-model 原理

1.使用 v-bind 绑定数据

2.使用 v-on 绑定监听的函数如果数据发生改变重新赋值最新的数据

3.事件绑定

v-on:事件类型="事件处理函数"
简写: @事件类型="事件处理函数"

- 事件修饰符

__ stop 阻止冒泡

__ prevent 阻止默认行为

__ once 只阻止次,跟随其他修饰符一起使用

- 按键修饰符

__enter

4.列表渲染

// arr / arrObj
v-for = "(item, index) in 数据"
// obj
v-for = "(value, key, index) in 数据"
// 数字
v-for = "(item, index) in 数字"  // item 从1开始 到指定的数据

- v-for 为什么和 key 一起使用

__ 给指定的标签添加唯一标识,防止页面在重新绘制的时候发生错乱

__ 确保 model 的值和 view 的值保持一致

key 可以是唯一的 string / number

key 使用 index 时,在unshift 的情况下会不断修改

5.条件渲染

v-if / v-else-if / v-else / v-show

- v-if 和 v-show 的区别

__ v-if 通过 js 操作 dom 元素的添加删除

__ v-show 通过 css 控制 元素的显示和隐藏

- 使用场景

__ v-if 逻辑判断 或 少量 dom 操作

__ v-show 用于频繁的点击操作