大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Vue渲染組件列表

Vue渲染組件列表

更新時間:2022-03-16 10:07:07 來源:動力節點 瀏覽934次

使用 v-for 渲染列表

要成為有效的待辦事項列表,我們需要能夠呈現多個待辦事項。為此,Vue 有一個特殊的指令,v-for. 這是一個內置的 Vue 指令,它允許我們在模板中包含一個循環,為數組中的每個項目重復呈現模板特征。我們將使用它來遍歷一系列待辦事項,并在我們的應用程序中以單獨的ToDoItem組件顯示它們。

添加一些數據來渲染

首先,我們需要獲取一系列待辦事項。為此,我們將向組件對象添加一個data屬性,其中包含一個值是待辦事項數組的字段。雖然我們最終會添加一種機制來添加新的待辦事項,但我們可以從一些模擬待辦事項開始。每個待辦事項將由一個具有 a和一個屬性的對象表示。App.vueToDoItemsnamedone

添加一些示例待辦事項,如下所示。這樣,您就有一些數據可用于使用v-for.

export default {
  name: 'app',
  components: {
    ToDoItem
  },
  data() {
    return {
      ToDoItems: [
        { label: 'Learn Vue', done: false },
        { label: 'Create a Vue project with the CLI', done: true },
        { label: 'Have fun', done: true },
        { label: 'Create a to-do list', done: false }
      ]
    };
  }
};

現在我們有了一個項目列表,我們可以使用v-for指令來顯示它們。指令適用于與其他屬性一樣的元素。在 的情況下v-for,您使用類似于for...inJavaScript 中的循環的特殊語法 — —您要迭代的數組v-for="item in items"在哪里,并且是對數組中當前元素的引用。itemsitem

v-for附加到要重復的元素,并呈現該元素及其子元素。在這種情況下,我們希望為數組

中的每個待辦事項顯示一個元素ToDoItems。然后我們想將每個待辦事項的數據傳遞給一個ToDoItem組件。

關鍵屬性

在我們這樣做之前,還有另一段語法需要了解,它與v-for屬性key一起使用。為了幫助 Vue 優化渲染列表中的元素,它會嘗試修補列表元素,以便不會在每次列表更改時重新創建它們。然而,Vue 需要幫助。為了確保它正確地重用列表元素,它需要在您附加v-for到的同一元素上具有唯一的“鍵”。

為了確保 Vue 可以準確地比較key屬性,它們需要是字符串或數值。雖然使用名稱字段會很好,但該字段最終將由用戶輸入控制,這意味著我們不能保證名稱是唯一的。

1.lodash.uniqueid以與App組件相同的方式導入ToDoItem組件,使用

 import uniqueId from 'lodash.uniqueid';

2.接下來,為數組id中的每個元素添加一個字段ToDoItems,并為每個元素分配一個值uniqueId('todo-')。您的App.vue<script>元素內容現在應該如下所示:

import ToDoItem from './components/ToDoItem.vue';
import uniqueId from 'lodash.uniqueid'
export default {
  name: 'app',
  components: {
    ToDoItem
  },
  data() {
    return {
      ToDoItems: [
        { id: uniqueId('todo-'), label: 'Learn Vue', done: false },
        { id: uniqueId('todo-'), label: 'Create a Vue project with the CLI', done: true },
        { id: uniqueId('todo-'), label: 'Have fun', done: true },
        { id: uniqueId('todo-'), label: 'Create a to-do list', done: false }
      ]
    };
  }
};

3.現在,將v-for指令和key屬性添加到模板中的<li>元素,如下所示:App.vue

<ul>
  <li v-for="item in ToDoItems" :key="item.id">
    <to-do-item label="My ToDo Item" :done="true"></to-do-item>
  </li>
</ul>

當您進行此更改時,<li>標簽之間的每個 JavaScript 表達式都可以訪問該item值以及其他組件屬性。這意味著我們可以將項目對象的字段傳遞給我們的ToDoItem組件——只要記住使用v-bind語法。這真的很有用,因為我們希望我們的待辦事項將它們的label屬性顯示為它們的標簽,而不是“我的待辦事項”的靜態標簽。此外,我們希望它們的檢查狀態反映它們的done屬性,而不是總是設置為done="false"。

4.label="My ToDo Item"將屬性更新為:label="item.label",并將:done="false"屬性更新為:done="item.done",如下面的上下文所示:

<ul>
  <li v-for="item in ToDoItems" :key="item.id">
     <to-do-item :label="item.label" :done="item.done"></to-do-item>
  </li>
</ul>

現在,當您查看正在運行的應用程序時,它會顯示帶有正確名稱的待辦事項,如果您檢查源代碼,您會看到輸入都有唯一id的 s,取自App組件中的對象。

有機會進行輕微的重構

我們可以在這里做一點重構。我們可以將轉化為道具,而不是為組件id內的復選框生成 。雖然這不是絕對必要的,但它使我們更容易管理,因為無論如何我們已經需要為每個待辦事項創建一個唯一的。ToDoItemidid

ToDoItem為你的組件添加一個新的 prop — id.

使其成為必需,并將其類型設為String.

為防止名稱沖突,請id從您的data屬性中刪除該字段。

您不再使用uniqueId,因此您需要刪除該import uniqueId from 'lodash.uniqueid';行,否則您的應用會拋出錯誤。

<script>您的組件中的內容ToDoItem現在應該如下所示:

export default {
    props: {
        label: {required: true, type: String},
        done: {default: false, type: Boolean},
        id: {required: true, type: String}
    },
    data() {
        return {
           isDone : this.done,
        }
    },
}

現在,在您的App.vue組件中,item.id作為道具傳遞給ToDoItem組件。您的App.vue模板現在應該如下所示:

<template>
  <div id="app">
    <h1>My To-Do List</h1>
    <ul>
      <li v-for="item in ToDoItems" :key="item.id">
        <to-do-item :label="item.label" :done="item.done" :id="item.id"></to-do-item>
      </li>
    </ul>
  </div>
</template>

當您查看渲染的站點時,它應該看起來相同,但是我們的重構現在意味著我們id正在從內部數據中獲取App.vue并ToDoItem作為道具傳遞,就像其他所有內容一樣,因此現在事情變得更加合乎邏輯和一致。大家如果對此比較感性趣,想了解更多知識,可以來關注一下動力節點的Java視頻教程,里面有更豐富的知識等著大家去學習,希望對大家能夠有所幫助。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产伦精品一区三区视频 | 久久精品中文字幕首页 | 成人a毛片高清视频 | 99久久精品国产高清一区二区 | 免费看国产精品久久久久 | 婷综合 | 欧美一级xxxxⅹ毛片 | 午夜欧美视频 | 国产国拍亚洲精品福利 | 四虎影视最新网站在线播放 | 免费一级欧美大片久久网 | 国产一区亚洲 | 欧美日韩性大片 | 国产h版大片在线播放 | 玖玖国产在线 | 亚洲成a | 国产第一页福利 | 奇米网7777| 99视频精品免视3 | 亚洲成片观看四虎永久 | aaa一级毛片| 欧美日本黄色 | 日本成人不卡 | 天天干夜夜玩 | 欧美亚洲一区二区三区 | 男女91视频| 这里只有精品国产 | 国产区成人综合色在线 | 久久婷婷激情 | 欧美在线成人免费国产 | 欧美国产日韩在线播放 | 91视频一区二区 | 四虎永久在线精品2022 | 亚洲精品98久久久久久中文字幕 | 日韩精品欧美成人 | 色爱区综合激月婷婷激情五月 | 韩国午夜影院 | 亚洲区一| 精品免费久久久久久影院 | 中文字幕一区婷婷久久 | 伊人第一页 |