VUE课程---20、条件渲染v-show

VUE课程---20、条件渲染v-show

一、总结

一句话总结:

条件渲染指令除了v-if,还有v-show,v-show指令通过改变元素的display属性来控制元素的显示和隐藏
<div id="app">
    <p v-if="flag">{{msg}}---v-if控制</p>
    <p v-show="flag">{{msg}}---v-show控制</p>
    <button @click="flag=!flag">toggle</button>
</div>
<script src="../js/vue.js"></script>
<script>
    let vm=new Vue({
        el:'#app', //element
        data:{
            msg:'欢迎来到vue的世界',
            flag:true
        }
    });
</script>

1、条件渲染指令v-if和v-show的区别?

-、v-if是真正的条件渲染,v-if中对应的元素的状态为true的时候,元素才被渲染出来,否则不被渲染
-、v-show只是简单的改变元素的display属性,v-show中对应的元素的状态为false时,元素的display属性变为none,所以不被显示

2、条件渲染指令v-if和v-show的 性能消耗问题?

*、v-if指令性能消耗问题:每次元素改变状态,都要被重新渲染,所以元素的切换性能消耗比较大
*、v-show指令性能消耗问题:v-show控制的元素最初都会被渲染出来,每次改变状态,只是改变元素的display属性的值,所以元素的初始性能消耗比较大

3、条件渲染指令v-if和v-show的使用场景?

^、v-if使用场景:很少被切换状态的元素,或者可能永远都不被显示的元素
^、v-show使用场景:经常切换状态的元素

二、条件渲染v-show

博客对应课程的视频位置:20、条件渲染v-show
https://www.fanrenyi.com/video/26/237

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>条件渲染v-show</title>
 6 </head>
 7 <body>
 8 <!--
 9 条件渲染指令除了v-if,还有v-show,v-show指令通过改变元素的display属性来控制元素的显示和隐藏
10 
11 条件渲染指令v-if和v-show的区别
12 -、v-if是真正的条件渲染,v-if中对应的元素的状态为true的时候,元素才被渲染出来,否则不被渲染
13 -、v-show只是简单的改变元素的display属性,v-show中对应的元素的状态为false时,元素的display属性变为none,所以不被显示
14 
15 条件渲染指令v-if和v-show的 性能消耗问题
16 *、v-if指令性能消耗问题:每次元素改变状态,都要被重新渲染,所以元素的切换性能消耗比较大
17 *、v-show指令性能消耗问题:v-show控制的元素最初都会被渲染出来,每次改变状态,只是改变元素的display属性的值,所以元素的初始性能消耗比较大
18 
19 条件渲染指令v-if和v-show的使用场景
20 ^、v-if使用场景:很少被切换状态的元素,或者可能永远都不被显示的元素
21 ^、v-show使用场景:经常切换状态的元素
22 -->
23 <div id="app">
24     <!--
25     v-if指令和v-show指令的区别
26     v-if指令通过状态来控制元素的显示和隐藏是直接通过操作dom来添加或者移除元素来实现的
27     v-if指令的初始消耗比较小,切换消耗比较大
28     适用场景:可能永远都不被显示的元素,或者很少切换状态的元素
29 
30 
31     v-show指令控制元素的显示和隐藏是通过改变元素的display属性
32     所以v-show控制的元素最开始就要被加载出来,所以这样v-show指令的初始消耗就比较大,
33     所以切换消耗比较小
34     适应的场景:切换状态比较频繁的元素
35     -->
36     <p v-if="flag">{{msg}}---v-if控制</p>
37     <p v-show="flag">{{msg}}---v-show控制</p>
38 <!--    <button @click="toggle">toggle</button>-->
39     <button @click="flag=!flag">toggle</button>
40 </div>
41 <script src="../js/vue.js"></script>
42 <script>
43     let vm=new Vue({
44         el:'#app', //element
45         data:{
46             msg:'欢迎来到vue的世界',
47             flag:true
48         },
49         methods:{
50             toggle(){
51                 this.flag=!this.flag;
52             }
53         }
54     });
55 </script>
56 </body>
57 </html>

 
条件渲染指令v-ifv-show的 性能消耗问题
原文地址:https://www.cnblogs.com/Renyi-Fan/p/12901060.html