首頁 > web前端 > Vue.js > 主體

淺析Vue的列表渲染指令:v-for

青灯夜游
發布: 2022-10-24 21:40:50
轉載
1869 人瀏覽過

這篇文章帶大家一起了解下Vue的清單渲染指令:v-for,希望給大家有幫助!

淺析Vue的列表渲染指令:v-for

Vue的清單渲染

1.1.v-for

⭐⭐
個人覺得其實就是基礎文法的for循環,使用上也差不多,只是形式不同罷了,理解會使用。 (學習影片分享:vue影片教學

使用方法;

1、遍歷陣列

v-for="item in 数组"
登入後複製
v-for="(item, index) in 数组"
登入後複製

對一個陣列進行遍歷實例:

<div class="item" v-for="item in products">
    <h3 class="title">商品:{{item.name}}</h3>
    <span>价格:{{item.price}}</span>
    <p>秒杀:{{item.desc}}</p>
</div>

const app = Vue.createApp({
        data() {
          return {
            //2.数组 存放的是对象
            products: [
              { id: 11, name: "mac", price: 1000, desc: "99" },
            ],
          };
        },
      });

app.mount("#app");
登入後複製

2、遍歷對象
⭐⭐
v-for也支援遍歷對象,並且支援有一二三個參數:

  • 一個參數: 「value in object ”;
  • 二參數: “(value, key) in object”;
  • 三個參數: “(value, key, index) in object”;

v-for同時也支援數字的遍歷:
每一個item都是一個數字;

<!-- 2.遍历对象 -->
      <ul>
        <li v-for="(value,key,index) in info">
          {{value}} - {{key}} - {{index}}
        </li>
      </ul>
 
 const app = Vue.createApp({
        data() {
          return {
            info: { bame: "why", age: 18, height: 1.88 },
          };
        },
      });
app.mount("#app");
登入後複製

3、遍歷字串

<li v-for="item in 100">{{item}}</li>
登入後複製

1.2 .v-for和template

⭐⭐
我們可以使用templ元素來循環渲染一段包含多個元素的內容

為什麼這裡不使用div呢?

我之前學的時候也沒有怎麼考慮這個,整理筆記的時候發現了這個問題

原因

  • #如果是div包裹的話,div也會被渲染出來
  • 而使用template包裹的話,template並沒有被渲染,相較於使用div會節省一個沒有必要的div標籤的使用。

其實,template的作用就是模板佔位符,可以幫助我們包裹元素,在循環的過程總,template不會被渲染到頁面上。

  • div(如果div沒有實際的意義,那麼可以使用template替換)

<div v-for="(value,key,index) in infos">
        <span>{{value}}</span>
        <strong>{{key}}</strong>
        <i>{{index}}</i>
</div>
登入後複製
  • template

<template v-for="(value,key,index) in infos">
        <span>{{value}}</span>
        <strong>{{key}}</strong>
        <i>{{index}}</i>
</template>
登入後複製

1.3.v-for 陣列更新偵測

⭐⭐

# Vue將被偵聽的陣列的變更方法進行了包裹,所以它們也會觸發視圖更新

被包裹過的方法包括

  • push() 陣列的後面插入元素
  • pop() 從陣列後面刪除一個元素
  • shift() 從陣列前面刪除一個元素
  • # unshift() 從陣列前面插入一個元素
  • splice() 陣列的剪貼、插入、刪除
  • sort() 排序
  • reverse() 反轉

這些方法的用法其實在js中都是差不多的,用到的時候想起來再查查

#取代陣列的方法

  • 上面的方法會直接修改原來的陣列;
  • 但是某些方法不會取代原來的數組,而是會產生新的數組,例如filter()、concat() 和slice();
//并不是完整写法!!!

<li v-for="item in names">{{item}}</li>
names: ["abc", "bac", "aaa", "cbb"],
// 1.直接将数组修改为一个新的数组
this.names = ["cc", "kk"];

// 2.通过一些数组的方法,修改数组中的元素
this.names.push("cc");
this.names.pop();
this.names.splice(2, 1, "cc");
this.names.sort();
this.names.reverse();
登入後複製

【相關影片教學推薦:vuejs入門教學web前端入門

以上是淺析Vue的列表渲染指令:v-for的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!