第六十三篇:Vue的条件渲染与列表渲染

好家伙,

 

1.条件渲染v-if

1.1.v-if基本使用

<body>
    
    <div id="app">
       <p v-if="flag">这是v-if控制的</p>
       <p v-show="flag">这是v-show控制的</p>
       <p v-if="false">这是v-if控制的</p>
       <p v-show="false">这是v-show控制的</p>
       
    </div>

    <script src="https://cdn.jsdelivr.net/npm/vue@2"></script>

    <script>
     
        const vm = new Vue({
            
            el:'#app',
           
            data:{
                flag:true,
                false:false,
                count:1,
               
            },
        })

    </script>
</body>

 

 

1.2.(隐藏)实现原理

 

 

(1) v-show的原理是:动态为元素添加或移除 display:none 样式,来实现元素的显示和隐藏。

如果要频繁的切换元素的显示状态,用v-show 性能会更好

(2) v-if的原理是:每次动态创建或移除元素,实现元素的显示和隐藏

 

1.3.v-if的配套语句

有v-if那么肯定少不了v-else,

其必须要和v-if搭配使用,否则不会被识别

 

有了v-else,那么肯定少不了v-else-if,

其充当v-if的"else-if"块,可以连续使用

举例如下:

 <div id="app">
       <div v-if="type ==='A'">1111</div>
       <div v-else-if="type ==='B'">2222</div>
       <div v-else-if="type ==='C'">3333</div>
       <div v-else>4444</div>
 </div>

 

2.列表渲染

vue 提供了v—for列表渲染指令,用来辅助开发者基于一个数组来循环渲染一个列表结构。

v-for指令需要使用item in items 形式的特殊语法,其中:

items是待循环的数组,item是被循环的每一项

用法如下:

<body>
    
    <div id="app">
       <table>
           <thead>
               <th>索引</th>
               <th>id</th>
               <th>姓名</th>
           </thead>
           <tbody>
               <tr v-for="item in list" > 
               <td>{{ item.id }}</td>
               <td>{{ item.id }}</td>
               <td>{{ item.name }}</td>
            </tr>
           </tbody>
       </table>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/vue@2"></script>

    <script>
     
        const vm = new Vue({
            
            el:'#app',
           
            data:{
               list:[
                   { id: 1,name: 'panghu'},
                   { id: 2,name: 'fattiger'},
                   { id: 3,name: '张三'},
               ]               
            },
            methods:{
                                
             }
            
        })

    </script>
</body>

效果如下:

 

 

2.2.补充

v-for指令还支持一个可选的第二个参数,即当前项的索引,语法格式为{item,index} in items, //item,index都是形参,可改名

 

2.3.v-for的key值

当我们使用v-for时,我们需要为其声明一个key值,

key的作用:让每个item有一个唯一的识别身份

像是item的身份证,防止紊乱,且方便指向

 

key的注意事项:

①key的值只能是字符串或数字类型

②key的值必须具有唯一性(即:key的值不能重复)

③ 建议把数据项id属性的值作为key的值,一般情况如此(因为id属性的值具有唯一性)

④使用index的值当作key的值没有任何意义(因为index的值不具有唯一性)

⑤建议使用v-for指令时一定要指定key的值(既提升性能、又防止列表状态紊乱)

 

 

That's all

posted @ 2022-04-06 00:36  养肥胖虎  阅读(61)  评论(0编辑  收藏  举报