Vue 基础精讲(四)

版权声明:转载请注明出处 https://blog.csdn.net/SOALIN228/article/details/84782363

v-if

在 Vue 中我们可以通过 v-if 指令来判断是否渲染这个对象


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Vue中的条件渲染</title>
  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
  <div id="app">
    <div v-if="show">{{message}}</div>
  </div>
  <script type="text/javascript">
    var vm = new Vue({
      el: "#app",
      data: {
        show: false,
        message: "Hello world"
      }
    })
  </script>
</body>
</html>

v-else

我们可以用 v-else 来表示 v-if 的“else块”


<div v-if="show">{{message}}</div>
<div v-else>Bye World</div>

v-else-if

v-else-if 是 Vue 2.1.0的新增指令,有了他就可以连续使用“else-if”


<div v-if="show === 'a'">This is A</div>
<div v-else-if="show === 'b'">This is B</div>
<div v-else>This is others</div>
var vm = new Vue({
  el: "#app",
  data: {
    show: "a"
  }
})

用 key 管理可复用的元素

Vue 会尽可能高效地渲染元素,通常会复用已有元素而不是从头开始渲染。所以当你的两个元素是完全独立的,需要添加 key 来告诉 Vue 不要复用他们


<div v-if="show">
  用户名:<input key="username">
</div>
<div v-else>
  邮箱名:<input key="email">
</div>    

v-show

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


<div v-show="show">{{message}}</div>

v-if vs v-show

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

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

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

猜你喜欢

转载自blog.csdn.net/SOALIN228/article/details/84782363