Vue-第三天vue.js的常用指令一:判断与循环

Posted 一步一步似爪牙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue-第三天vue.js的常用指令一:判断与循环相关的知识,希望对你有一定的参考价值。

前两天,写完了"Hello world",突然发现时间过得好快,又是一个周三了。


坏消息是,面向对象的日子,又安安静静的过去了半周,好消息是,面向对象的日子可能还有还有好多周。


如果月光可以,站在慎思极恐的十字路口,或许你会遇到这样的一个人,她穿着一身红色的衣服,散着一头长发,跟你一样孤单,在那里说着,"希望上天跟我掉下来一个帅哥",然后正好你出现了……


就这样的日子,每天都是if,每天也都是for……


今天我们就轻轻松松的来说说vue.js中,if与for的故事。


一、 vue.js常用必知的指令


在将if与for的故事前,先说两个基本必知的指令。v-html与v-text.


1、v-html


api描述:


更新元素的 innerHTML 。注意:内容按普通 HTML 插入 - 不会作为 Vue 模板进行编译 。如果试图使用 v-html 组合模板,可以重新考虑是否通过使用组件来替代。


注意事项:

在网站上动态渲染任意 HTML 是非常危险的,因为容易导致 XSS 攻击。只在可信内容上使用 v-html,永不用在用户提交的内容上。


在单文件组件里,scoped 的样式不会应用在 v-html 内部,因为那部分 HTML 没有被 Vue 的模板编译器处理。如果你希望针对 v-html 的内容设置带作用域的 CSS,你可以替换为 CSS Modules 或用一个额外的全局 <style> 元素手动设置类似 BEM 的作用域策略。


2、v-text


api描述:


更新元素的 textContent。如果要更新部分的 textContent ,需要使用 {{ Mustache }} 插值。


demo:



显示效果:

【Vue-第三天】vue.js的常用指令一:判断与循环


一、 vue.js的判断指令


1、v-if


api描述:

根据表达式的值的真假条件渲染元素。在切换时元素及它的数据绑定 / 组件被销毁并重建。如果元素是 <template> ,将提出它的内容作为条件块。


当条件变化时该指令触发过渡效果。


2、v-else


api描述:

限制:前一兄弟元素必须有 v-if 或 v-else-if。


3、v-else-if


api描述:


2.1.0 新增,前一兄弟元素必须有 v-if 或 v-else-if。表示 v-if 的 “else if 块”。可以链式调用。


4、v-show


api描述:

根据表达式之真假值,切换元素的 display CSS 属性。


当条件变化时该指令触发过渡效果。


demo:


【Vue-第三天】vue.js的常用指令一:判断与循环


显示效果:


【Vue-第三天】vue.js的常用指令一:判断与循环


一、 vue.js的循环指令


1、v-for


api描述:

基于源数据多次渲染元素或模板块。此指令之值,必须使用特定语法 alias in expression ,为当前遍历的元素提供别名:

<div v-for="item in items">

{{ item.text }}

</div>

另外也可以为数组索引指定别名 (或者用于对象的键):


<div v-for="(item, index) in items"></div>

<div v-for="(val, key) in object"></div>

<div v-for="(val, key, index) in object"></div>

v-for 默认行为试着不改变整体,而是替换元素。迫使其重新排序的元素,你需要提供一个 key 的特殊属性:


<div v-for="item in items" :key="item.id">

{{ item.text }}

</div>


简单的demo:

【Vue-第三天】vue.js的常用指令一:判断与循环


【Vue-第三天】vue.js的常用指令一:判断与循环


实现的效果:


【Vue-第三天】vue.js的常用指令一:判断与循环

注意:v-for也是可以遍历对象中的值的,如下面的例子:

【Vue-第三天】vue.js的常用指令一:判断与循环

【Vue-第三天】vue.js的常用指令一:判断与循环


打印出的结果:

【Vue-第三天】vue.js的常用指令一:判断与循环




三、 当v-if遇到v-for


当和 v-if 一起使用时,v-for 的优先级比 v-if 更高。


当v-if与v-for处于同一节点,v-for 的优先级比 v-if 更高,这意味着 v-if 将分别重复运行于每个 v-for 循环中。


例如下面的demo:

【Vue-第三天】vue.js的常用指令一:判断与循环

仍然使用上面使用的使用v-for循环对象中数据例子中,当在v-for与v-if同时使用在同要给标签时,会先进行for循环,每个if判断在for循环的每一层循环中进行。


如果想是在for循环外层可以的进行判断,需要在for循环所在标签外层加上带有v-if判断指令的标签,例如下图所示。


以上是关于Vue-第三天vue.js的常用指令一:判断与循环的主要内容,如果未能解决你的问题,请参考以下文章

Vue.js 条件与循环

Vue.js 条件与循环

Vue.js 条件与循环

Vue.js 2.0 由浅入深,第三天 day03

Vue.js 条件与循环

vue条件语句与循环语句的基本使用