Vue开发:条件渲染v-i和v-show的使用

条件渲染:v-if

  • v-if指令:用于条件性地渲染一块内容,这块内容只会在指令的表达式返回真值的时候才会被渲染。
  • v-else指令:表示v-if的“else 块
<h1 v-if="status">Vue is awesome!h1>
<h1 v-else>React is awesome!h1>
  •  元素上使用 v-if 条件渲染分组:v-if 指令必须将它添加到一个元素上。但切换多个元素时,可以把一个  元素当做不可见的包裹元素,并在上面使用 v-if。
<template v-if="loginType === \'username\'">
  <label>Usernamelabel>
  <input placeholder="Enter your username">
template>
<template v-else>
  <label>Emaillabel>
  <input placeholder="Enter your email address">
template>
  • 上面的代码中切换 loginType 将不会清除用户已经输入的内容。因为两个模板使用了相同的元素, 不会被替换掉——仅仅是替换了它的 placeholder。
  • 用 key 管理可复用的元素:只需添加一个具有唯一值的 key 属性,可以让这两个元素是完全独立的
<template v-if="loginType === \'username\'">
  <label>Usernamelabel>
  <input placeholder="Enter your username" key="username-input">
template>
<template v-else>
  <label>Emaillabel>
  <input placeholder="Enter your email address" key="email-input">
template>

条件渲染:v-show

  • v-show指令:用于根据条件展示元素的选项
h1 v-show="ok">Hello Vue!h1>
  • 备注:
  1. v-show 的元素始终会被渲染并保留在 DOM 中。v-show 只是简单地切换元素的 CSS property display。
  1. v-show 不支持  元素,也不支持 v-else

v-if vs v-show

  • v-if 是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。
  • v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。
  • 相比之下,v-show 就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换。

总结:

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

内容出处:,

声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。文章链接:http://www.yixao.com/procedure/13764.html

发表评论

登录后才能评论