河北网站seo外包,wordpress5.0编辑器文本格式,做网站外包价格,猪八戒做网站怎么赚钱文章目录 一、条件渲染1、v-if2、v-else3、v-else-if4、\template 上的 v-if5、v-show 二、区别#xff1a;1、渲染区别2、性能区别#xff1a; 三、v-if和v-for的优先级四、注意事项 一、条件渲染
1、v-if
v-if 指令用于条件性地渲染一块内容。这块内容只会在指令… 文章目录 一、条件渲染1、v-if2、v-else3、v-else-if4、\template 上的 v-if5、v-show 二、区别1、渲染区别2、性能区别 三、v-if和v-for的优先级四、注意事项 一、条件渲染
1、v-if
v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回真值时才被渲染。
h1 v-ifawesomeVue is awesome!/h12、v-else
你也可以使用 v-else 为 v-if 添加一个“else 区块”。
h1 v-ifawesomeVue is awesome!/h1
h1 v-elseOh no/h13、v-else-if
v-else-if 提供的是相应于 v-if 的“else if 区块”。它可以连续多次重复使用
div v-iftype AA/div
div v-else-iftype BB/div
div v-else-iftype CC/div
div v-elseNot A/B/C/div和 v-else 类似一个使用 v-else-if 的元素必须紧跟在一个 v-if 或一个 v-else-if 元素后面。
4、template 上的 v-if
因为 v-if 是一个指令他必须依附于某个元素。但如果我们想要切换不止一个元素呢在这种情况下我们可以在一个 元素上使用 v-if这只是一个不可见的包装器元素最后渲染的结果并不会包含这个 元素。
template v-ifokh1Title/h1pParagraph 1/ppParagraph 2/p
/templatev-else 和 v-else-if 也可以在 上使用。
5、v-show
用来按条件显示一个元素的指令是 v-show。其用法基本一样
h1 v-showokHello!/h1不同之处在于 v-show 会在 DOM 渲染中保留该元素v-show 仅切换了该元素上名为 display 的 CSS 属性。
v-show 不支持在 元素上使用也不能和 v-else 搭配使用。
二、区别
1、渲染区别
v-show 是通过控制display属性来进行dom的显示与隐藏v-if 是真正意义上的条件渲染为true是渲染dom存在为false时不存在dom不存在
2、性能区别
v-if有更高的切换开销v-show有更高的初始渲染开销。 如果需要频繁的切换使用v-show比较好如果运行条件很少改变使用v-if比较好。v-show比v-if性能更高因为v-show只能动态的改变样式不需要增删DOM元素。 所以当程序不是很大时候v-if和v-show区别都不大如果项目很大推荐多用v-show较少浏览器后期操作的性能。需要多种条件场景比如id123…时候因为只有v-if可以和v-else等连用这种比较适合用v-ifv-show不支持语法v-if切换的时候会实时的销毁和重建内部的事件、钩子函数等v-show只会初始化渲染时候执行再切换时候不会执行生命后期的过程。
三、v-if和v-for的优先级
其实在vue2和vue3中的答案是截然相反的。
在vue2中v-for的优先级高于v-if在vue3中v-if的优先级高于v-for
v-if指令用于条件性地渲染一块内容。指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 true值的时候被渲染。
v-for指令基于一个数组来渲染一个列表。v-for指令需要使用item in items形式的特殊语法其中items是源数据数组或者对象而item则是被迭代的数组元素的别名。
在v-for的时候建议设置key值并且保证每一个key值都是独一无二的这便是diff算法进行优化。
四、注意事项
永远不要把 v-if 和 v-for 同时用在同一个元素上带来性能方面的浪费每次渲染都会先循环再进行条件判断
如果避免出现这种情况则在外层嵌套template页面渲染不生成dom节点在这一层进行v-if判断然后在内部进行v-for循环
template v-ifisShowp v-foritem in items
/template如果条件出现在循环内部可通过计算属性computed提前过滤掉那些不需要显示的项
computed: {items: function() {return this.list.filter(function (item) {return item.isShow})}
}