vue JS的内置指令:v-cloak,v-if等。

996 阅读1分钟

image.png

基本指令

v-cloak的用法

作用:解决初始化慢导致页面闪动的最佳实践

<head>
<style>
        [v-cloak]:{
            display:none;
        }   
    </style>
</head>
<body>
   
    <div id="app">
     <hr>
    v-cloak:的用法<br>
      <p v-cloak>{{msg}}</p> 
      v-once:<br>
     
      <span v-once>{{oncedata}}</span>
    </div>
    <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.14/vue.min.js"></script>
    <script>
      var app =  new Vue({
            el:'#app',
            data:{
                msg:'村里有一个姑娘叫小芳!',
                oncedata:'长得美丽又大方'
            }
        })
    </script>

注释:若网速较慢时,不能立刻显示数来msg里面的内容,会出现页面闪动,为了避免这一现象,可以用v-cloak,一般与display:none;连用,效果最好。

v-once的用法

定义它的元素和页面只渲染一次;

image.png 后台修改,不会渲染到页面了。只有第一次会显示。

条件渲染指令

5.2.1 v-if ,v-ele-if ,v-else 这个目前是我学的最简单的一个指令了

<body>
    <div id="app">
        <p v-if="6<3">{{apple}}</p> 
        <p v-else-if="9>3">{{pineapple}</p>
        <p v-else="6<3">{{banana}}</p>
    </div>
    <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.14/vue.min.js"></script>
    <script>
    var app = new Vue ({
        el:"#app",
        data:{
            apple:"apple",
            banana:"banana",
            pineapple:"pineapple"
        }
    }) 
</script> 
</body>

执行结果为:pinapple

  1. <p v-if="6<3">{{apple}}</p> :因为6<3是假,所以不执行,则轮到第二个;
  2. <p v-else-if="9>3">{{pineapple}</p>: 因为9>3是真,所以执行,所以轮不到第三个;
  3. <p v-else="6<3">{{banana}}</p>;因为上面执行过了,所以轮不到第三个了。

v-show也是条件渲染指令,类似v-if

 <p v-show="9>a">我被渲染了</p>
 data:{
            a:3
        }, 

因为9>3,所以会出现“我被渲染了” 若a=18,则不会出现“我被渲染了” v-if:是实时渲染; v-show:元素永远存在页面,知识改变了css的display的属性