当前位置:   article > 正文

vue: v-show 和 v-if 指令控制盒子的显示隐藏_v-if显示隐藏

v-if显示隐藏

v-show 和 v-if 简介:

1. v-show

    语法:  v-show="布尔值"    (true显示, false隐藏)

    原理:  实质是在控制元素的 css 样式,  `display: none;`

2. v-if  

    语法: v-if="布尔值"   (true显示, false隐藏)

    原理:  实质是在动态的创建 或者 删除元素节点

应用场景:

         1. 如果是频繁的切换显示隐藏, 用 v-show  

             (v-show, 只是控制css样式,而v-if, 频繁切换会大量的创建和删除元素, 消耗性能)

         2. 如果是不用频繁切换, 要么显示, 要么隐藏的情况, 适合于用 v-if

             (v-if 是惰性的, 如果初始值为 false, 那么这些元素就直接不创建了, 节省一些初始渲染开销)

  1. <template>
  2. <div>
  3. <!-- 控制元素的 css 样式,  display: none -->
  4. <h1 v-show="showContent">hello world</h1>
  5. <!-- 动态删除元素节点 -->
  6. <h1 v-if="showContent">hello world</h1>
  7. </div>
  8. </template>
  9. <script>
  10. export default {
  11. // data中声明的变量
  12. data() {
  13. return {
  14. showContent: false,
  15. }
  16. }
  17. }
  18. </script>
  19. <style>
  20. </style>

若多个条件,采用v-if和v-else-if和v-else来控制要显示隐藏的内容

  1. <template>
  2. <div>
  3. <!-- 多个条件,采用v-if和v-else-if和v-else -->
  4. <!-- 多个条件之间,不能插入别的标签 -->
  5. <h1>去社区送礼品</h1>
  6. <p>不同年龄段,送不同的礼品</p>
  7. <p v-if="age < 18">小朋友:棒棒糖</p>
  8. <p v-else-if="age < 50">青年:快乐水</p>
  9. <p v-else-if="age < 60">中年:假发</p>
  10. <p v-else>老年:脑白金</p>
  11. <p>年龄:{{ age }}</p>
  12. <button @click="age += 10">长大10岁</button>
  13. </div>
  14. </template>
  15. <script>
  16. export default {
  17. data() {
  18. return {
  19. age: 8,
  20. };
  21. }
  22. }
  23. </script>
  24. <style>
  25. </style>

 小案例:

需求:点击按钮button变量count值自增,当count大于3,显示内容“恭喜你晋级了”

  1. <template>
  2. <div>
  3. <p v-show="showWorld">hello world</p>
  4. <p v-if="showWorld">hello world</p>
  5. <button @click="showWorld = !showWorld">显示/隐藏世界</button>
  6. <h1>{{ count }}</h1>
  7. <!-- 当count大于3,显示恭喜你晋级了 -->
  8. <p v-show="count > 3">恭喜你,晋级了!</p>
  9. <button @click="count++">升级</button>
  10. <!-- 根据年龄,显示不同文案 -->
  11. <!-- 小于18 -->
  12. <h1 v-if="age < 18">少年</h1>
  13. <!-- 18 - 30 -->
  14. <h1 v-else-if="age < 30">青年</h1>
  15. <!-- 30 - 60 -->
  16. <h1 v-else-if="age < 60">中年</h1>
  17. <!-- 大于 60 -->
  18. <h1 v-else>老年</h1>
  19. <h1>年龄:{{ age }}</h1>
  20. <button @click="age += 10">长大10岁</button>
  21. </div>
  22. </template>
  23. <script>
  24. export default {
  25. data() {
  26. return {
  27. showWorld: true,
  28. count: 0,
  29. age: 8,
  30. }
  31. }
  32. }
  33. </script>
  34. <style>
  35. </style>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/96528
推荐阅读