所在的位置: js >> js资源 >> vuejs初入门七条件渲染

vuejs初入门七条件渲染

v-if

举个栗子:

细心的人可能会发现,v-if需要依赖元素,比如上一个栗子,我们不想要p标签,又使用使用v-if指令呢?

可以使用template元素。如:

最终的渲染结果将不包含template元素。

v-else

你可以使用v-else指令来表示v-if的“else块”。

举个栗子:

注意:v-else元素必须紧跟在带v-if或者v-else-if的元素的后面,否则它将不会被识别。

v-else-if

2.1.0新增,举个栗子:

类似于v-else,v-else-if也必须紧跟在带v-if或者v-else-if的元素之后。

用key管理可复用的元素

Vue会尽可能高效地渲染元素,通常会复用已有元素而不是从头开始渲染。这么做除了使Vue变得非常快之外,还有其它一些好处。例如,如果你允许用户在不同的登录方式之间切换:

那么在上面的代码中切换loginType将不会清除用户已经输入的内容。因为两个模板使用了相同的元素,input不会被替换掉——仅仅是替换了它的placeholder。

效果如下:

这样也不总是符合实际需求,所以Vue为你提供了一种方式来表达“这两个元素是完全独立的,不要复用它们”。只需添加一个具有唯一值的key属性即可:

举个栗子:

效果如下:

注意,label元素仍然会被高效地复用,因为它们没有添加key属性。

v-show

另一个用于根据条件展示元素的选项是v-show指令。用法大致一样:

不同的是带有v-show的元素始终会被渲染并保留在DOM中。v-show只是简单地切换元素的CSS属性display。

注意,v-show不支持template元素,也不支持v-else。

v-ifvsv-show

v-if是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。

v-if是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。

相比之下,v-show就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于CSS进行切换。

一般来说,v-if有更高的切换开销,而v-show有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用v-show较好;如果在运行时条件很少改变,则使用v-if较好。




转载请注明:http://www.aierlanlan.com/rzgz/1242.html

  • 上一篇文章:
  •   
  • 下一篇文章: