指令用在我们的html中。
指令 (Directives) 是带有 v- 前缀的特殊特性。指令特性的值预期是单个 JavaScript 表达式 (v-for 是例外情况,稍后我们再讨论)。指令的职责是,当表达式的值改变时,将其产生的连带影响,响应式地作用于 DOM。
v-if指令:
用来判断是否加载html的DOM
根据表达式的值的真假条件渲染元素。在切换时元素及它的数据绑定 / 组件被销毁并重建。如果元素是 ,将提出它的内容作为条件块。
当条件变化时该指令触发过渡效果。
当和 v-if 一起使用时,v-for 的优先级比 v-if 更高。详见列表渲染教程
v-else指令:
前一兄弟元素必须有 v-if 或 v-else-if。
为 v-if 或者 v-else-if 添加“else 块”。
Now you see me
Now you don't
v-else-if指令:
前一兄弟元素必须有 v-if 或 v-else-if。
表示 v-if 的 “else if 块”。可以链式调用。
A
B
Not A/B
v-show指令:
根据表达式之真假值,切换元素的 display CSS 属性。
当条件变化时该指令触发过渡效果。
v-for指令:
循环渲染一组data中的数组,v-for 指令需要以 item in items 形式的特殊语法,items 是源数据数组并且item是数组元素迭代的别名。
基于源数据多次渲染元素或模板块。此指令之值,必须使用特定语法 alias in expression,为当前遍历的元素提供别名:
{{item.text}}
另外也可以为数组索引指定别名 (或者用于对象的键):
v-for 默认行为试着不改变整体,而是替换元素。迫使其重新排序的元素,需要提供一个 key 的特殊属性:
{{item.text}}
从 2.6 起,v-for 也可以在实现了可迭代协议的值上使用,包括原生的 Map 和 Set。不过应该注意的是 Vue 2.x 目前并不支持可响应的 Map 和 Set 值,所以无法自动探测变更。
当和 v-if 一起使用时,v-for 的优先级比 v-if 更高。详见列表渲染教程 ; key
v-text指令:
更新元素的 textContent。如果要更新部分的 textContent ,需要使用 {{ Mustache }} 插值。
{{msg}}
v-html指令:
更新元素的 innerHTML 。注意:内容按普通 HTML 插入 - 不会作为 Vue 模板进行编译 。如果试图使用 v-html 组合模板,可以重新考虑是否通过使用组件来替代。
在网站上动态渲染任意 HTML 是非常危险的,因为容易导致 XSS 攻击。只在可信内容上使用 v-html,永不用在用户提交的内容上。
在单文件组件里,scoped 的样式不会应用在 v-html 内部,因为那部分 HTML 没有被 Vue 的模板编译器处理。如果你希望针对 v-html 的内容设置带作用域的 CSS,你可以替换为 CSS Modules 或用一个额外的全局