Vue基礎(12)_Vue.js循環語句用法:列表渲染

js補充

術語解釋
循環(loop):最基礎的概念, 所有重復的行為。
遞歸(recursion): 在函數內調用自身, 將復雜情況逐步轉化成基本情況。
(數學)迭代(iterate) :在多次循環中逐步接近結果。
(編程)迭代(iterate) :按順序訪問線性結構中的每一項。
遍歷(traversal) :按規則訪問非線性結構中的每一項。

for...in 循環【ES5】

for...in 語句迭代一個對象的所有可枚舉字符串屬性(除 Symbol 以外),包括繼承的可枚舉屬性。
語法:
for (variable in object){
...?
}
參數:
variable:在每次迭代時接收一個字符串屬性名。它可以通過使用 const、let 或 var 進行聲明,也可以是一個賦值目標(例如,先前聲明的變量、對象屬性或解構模式)。使用 var 聲明的變量不會局限于循環內部,即它們與 for...in 循環所在的作用域相同。
object:被迭代非符號可枚舉屬性的對象。

for of 循環【ES6】

for...of 語句執行一個循環,該循環處理來自可迭代對象的值序列。可迭代對象包括內置對象的實例,例如 ArrayStringTypedArrayMapSetNodeList(以及其他 DOM 集合),還包括 arguments 對象、由生成器函數生成的生成器,以及用戶定義的可迭代對象。

語法:
for (variable of iterable){
...
}
參數:
variable:每次迭代時從序列接收一個。可以是用 const、let 或 var 聲明的變量,也可以是賦值目標(例如之前聲明的變量、對象屬性或解構模式)。使用 var 聲明的變量不會局限于循環內部,即它們與 for...of 循環所在的作用域相同。
iterable:可迭代對象。循環操作的序列值的來源。

for...of 與 for...in 之間的區別

for...in 和 for...of 語句都用于迭代某個內容,它們之間的主要區別在于迭代的對象。for...in 語句用于迭代對象的可枚舉字符串屬性,而 for...of 語句用于迭代可迭代對象定義的要進行迭代的值

舉例:

        Object.prototype.objCustom = function () { };Array.prototype.arrCustom = function () { };const iterable = [3, 5, 7];iterable.foo = "hello";for (const i in iterable) {console.log(i);}// "0"、"1"、"2"、"foo"、"arrCustom"、"objCustom"for (const i in iterable) {if (Object.hasOwn(iterable, i)) {console.log(i);}}// "0" "1" "2" "foo"for (const i of iterable) {console.log(i);}// 3 5 7

分析:

1、iterable?對象繼承了?objCustom?和?arrCustom?屬性,因為其原型鏈中同時包含了?Object.prototype?和?Array.prototype。

2、for...in?循環僅打印了?iterable?對象的可枚舉屬性。它不會打印數組中的元素?3、5、7?或?"hello",因為它們不是屬性,而是值。它打印了數組的索以及?arrCustom?和?objCustom,它們是實際的屬性。

3、第二個循環與第一個循環類似,但它使用?Object.hasOwn()?來檢查找到的可枚舉屬性是否為對象的自有屬性,即非繼承屬性。如果是,則打印該屬性。屬性?0、1、2?和?foo?被打印,因為它們是自有屬性。屬性?arrCustom?和?objCustom?沒有被打印,因為它們是繼承屬性。

4、for...of?循環迭代并打印?iterable?按照數組(數組是可迭代的)定義要進行迭代的值。對象的元素?3、5、7?被打印,但對象的屬性沒有被打印。

Vue.js 循環語句用法:列表渲染

在 Vue 中,循環語句主要通過 v-for 指令來實現,用于遍歷數組或對象,生成對應數量的元素。在元素上使用 v-for 指令,根據源數據的數組或對象進行循環渲染元素。

遍歷數組:

v-for="(item, index) in items"?:key="..."? ?

可選值:index

遍歷對象:

v-for="(value, key, index) in object"?:key="..."??

可選值:key、index

可遍歷:數組、對象、字符串(用的很少)、指定次數(用的很少)。
key 的作用: 使用 v-for 渲染列表時,必須為每個項提供一個唯一的 key 屬性,以便 Vue 能夠識別每個項的唯一性,從而進行高效的 DOM 更新
?嵌套循環: 可以嵌套使用多個 v-for 來渲染多維數組或對象結構。
補充:v-for 中的 in 和 of 是遍歷數據時的兩個常用關鍵字,它們的主要區別在于:in 更通用,可以遍歷數組、對象和整數范圍;而 of 專注于遍歷可迭代對象(如數組、字符串、Set、Map 等)。

舉例:

<!DOCTYPE html>
<html lang="zh"><head><meta charset="UTF-8"><title>Vue.js循環語句用法:列表渲染</title><script type="text/javascript" src="../js/vue.js"></script>
</head><body><div id="root"><h2 style="color:chocolate;">Vue.js循環語句用法:列表渲染</h2><!-- 遍歷對象數組 --><h3>遍歷人員列表</h3><ul><li v-for="p in persons" :key="p.id">{{p.id}}--{{p.name}}-{{p.age}}</li></ul><!-- 遍歷對象 --><h3>遍歷汽車信息</h3><ul><li v-for="(value,key,index) in car" :key="key">{{index}}--{{key}}--{{value}}</li></ul><!-- 遍歷字符串(用的很少) --><h3>遍歷字符串(用的很少)</h3><ul><li v-for="(char,index) in str" :key="index">{{index}}--{{char}}</li></ul><!-- 遍歷指定次數(用的很少) --><h3>遍歷指定次數(用的很少)</h3><ul><!-- 遍歷5次 --><li v-for="(number,index) in 5" :key="index">{{index}}--{{number}}</li></ul></div><script>new Vue({el: '#root',data: {persons: [{ id: '001', name: '張三', age: 21 },{ id: '002', name: '李四', age: 22 },{ id: '003', name: '王五', age: 23 }],car: {name: '奧迪A8',price: '70萬',color: '藍色'},str: 'hello'}})</script>
</body></html>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/85534.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/85534.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/85534.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux入門(十三)動態監控系統監控網絡狀態

top與ps 命令很相似&#xff0c;它們都是用來顯示正在執行的進程&#xff0c;top與ps大的區別是top在執行一段時間可以更新正在運行的進程。 #-d 更新秒數 如果不寫-d 那默認是3秒更新 # -i 隱藏不活躍進程 top -d 5交互操作 P 按cpu使用大小排序&#xff0c;默認此項 M 按內存…

Java 中 MySQL 索引深度解析:面試核心知識點與實戰

&#x1f91f;致敬讀者 &#x1f7e9;感謝閱讀&#x1f7e6;笑口常開&#x1f7ea;生日快樂?早點睡覺 &#x1f4d8;博主相關 &#x1f7e7;博主信息&#x1f7e8;博客首頁&#x1f7eb;專欄推薦&#x1f7e5;活動信息 文章目錄 Java 中 MySQL 索引深度解析&#xff1a;面試…

Kafka集成Flume/Spark/Flink(大數據)/SpringBoot

Kafka集成Flume Flume生產者 ③、安裝Flume&#xff0c;上傳apache-flume的壓縮包.tar.gz到Linux系統的software&#xff0c;并解壓到/opt/module目錄下&#xff0c;并修改其名稱為flume Flume消費者 Kafka集成Spark 生產者 object SparkKafkaProducer{def main(args:Array[S…

debian12.9或ubuntu,vagrant離線安裝插件vagrant-libvirt,20250601

系統盤: https://mirror.lzu.edu.cn/debian-cd/12.9.0/amd64/iso-dvd/debian-12.9.0-amd64-DVD-1.iso 需要的依賴包,無需安裝ruby( sudo apt install -y ruby-full ruby-dev rubygems,后來發現不安裝會有編譯警告,還是安裝吧 ) ,無需安裝 zlib1g-dev liblzma-dev libxml2-de…

2025年軟件測試面試八股文(含答案+文檔)

&#x1f345; 點擊文末小卡片&#xff0c;免費獲取軟件測試全套資料&#xff0c;資料在手&#xff0c;漲薪更快 Part1 1、你的測試職業發展是什么&#xff1f; 測試經驗越多&#xff0c;測試能力越高。所以我的職業發展是需要時間積累的&#xff0c;一步步向著高級測試工程師…

[CSS3]響應式布局

導讀 響應式就是一套代碼, 兼容大中小不同的屏幕, 即網頁內容不變, 網頁布局隨屏幕切換而改變 媒體查詢 響應式布局的核心技術是媒體查詢 媒體查詢可以檢測屏幕尺寸, 設置差異化的css 開發中的常用寫法 使用范圍屬性, 劃定屏幕范圍 max-width 最大寬度min-width 最小寬度 …

在 Windows安裝 make 的幾種方式

在 Windows 上使用 make&#xff08;通常用于自動化構建 C/C 項目等&#xff09;有幾種方法。以下是最常見的幾種安裝和使用方法&#xff1a; 文章目錄 ? 方法一&#xff1a;使用 Chocolatey 安裝 GNU Make&#xff08;推薦&#xff09;? 方法二&#xff1a;使用 WSL&#xf…

深度學習筆記25-RNN心臟病預測(Pytorch)

&#x1f368; 本文為&#x1f517;365天深度學習訓練營中的學習記錄博客&#x1f356; 原作者&#xff1a;K同學啊 一、前期準備 1.數據處理 import torch.nn.functional as F import numpy as np import pandas as pd import torch from torch import nn dfpd.read_csv(r&…

Pytorch知識點2

Pytorch知識點 1、官方教程2、張量&#x1f9f1; 0、數組概念&#x1f9f1; 1. 創建張量&#x1f4d0; 2. 張量形狀與維度&#x1f522; 3. 張量數據類型? 4. 張量的數學與邏輯操作&#x1f504; 5. 張量的就地操作&#x1f4e6; 6. 復制張量&#x1f680; 7. 將張量移動到加速…

池中錦鯉的自我修養,聊聊蓄水池算法

面試如泡池&#xff0c;蓄水似人生 起初你滿懷期待跳進大廠池子&#xff0c;以為自己是天選之子&#xff0c;結果發現池子里早擠滿了和你一樣的“錦鯉候選人”。HR的漁網一撒&#xff0c;撈誰全看概率——這不就是蓄水池算法的精髓嗎&#xff1f; 初入池&#xff08;i≤k&…

Linux應用開發之網絡套接字編程

套接字&#xff08;Socket&#xff09;是計算機網絡數據通信的基本概念和編程接口&#xff0c;允許不同主機上的進程&#xff08;運行中的程序&#xff09;通過網絡進行數據交換。它為應用層軟件提供了發送和接收數據的能力&#xff0c;使得開發者可以在不用深入了解底層網絡細…

小白的進階之路系列之六----人工智能從初步到精通pytorch數據集與數據加載器

本文將介紹以下內容: 數據集與數據加載器 數據遷移 如何建立神經網絡 數據集與數據加載器 處理數據樣本的代碼可能會變得混亂且難以維護;理想情況下,我們希望我們的數據集代碼與模型訓練代碼解耦,以獲得更好的可讀性和模塊化。PyTorch提供了兩個數據原語:torch.utils…

深入理解設計模式之中介者模式

深入理解設計模式之&#xff1a;中介者模式&#xff08;Mediator Pattern&#xff09; 一、什么是中介者模式&#xff1f; 中介者模式&#xff08;Mediator Pattern&#xff09;是一種行為型設計模式。它通過引入一個中介對象&#xff0c;來封裝一組對象之間的交互&#xff0…

基于通義千問的兒童陪伴學習和成長的智能應用架構。

1.整體架構概覽 我們的兒童聊天助手將采用典型的語音交互系統架構,結合大模型能力和外部知識庫: 2. 技術方案分解 2.1. 前端應用/設備 選擇: 移動App(iOS/Android)、Web應用,或者集成到智能音箱/平板等硬件設備中。技術棧: 移動App: React Native / Flutter (跨平臺…

Python Day40

Task&#xff1a; 1.彩色和灰度圖片測試和訓練的規范寫法&#xff1a;封裝在函數中 2.展平操作&#xff1a;除第一個維度batchsize外全部展平 3.dropout操作&#xff1a;訓練階段隨機丟棄神經元&#xff0c;測試階段eval模式關閉dropout 作業&#xff1a;仔細學習下測試和訓練代…

WordPress_suretriggers 權限繞過漏洞復現(CVE-2025-3102)

免責申明: 本文所描述的漏洞及其復現步驟僅供網絡安全研究與教育目的使用。任何人不得將本文提供的信息用于非法目的或未經授權的系統測試。作者不對任何由于使用本文信息而導致的直接或間接損害承擔責任。如涉及侵權,請及時與我們聯系,我們將盡快處理并刪除相關內容。 前…

基于Spring Boot 電商書城平臺系統設計與實現(源碼+文檔+部署講解)

技術范圍&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、小程序、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容&#xff1a;免費功能設計、開題報告、任務書、中期檢查PPT、系統功能實現、代碼編寫、論文編寫和輔導、論文…

LeetCode 39.組合總和:回溯法與剪枝優化的完美結合

一、問題本質與形式化定義 1.1 題目形式化描述 輸入&#xff1a;無重復整數數組candidates、目標值target輸出&#xff1a;所有和為target的組合集合&#xff0c;滿足&#xff1a; 元素可重復使用組合內元素非降序&#xff08;避免重復解&#xff09;解集無重復組合 1.2 問…

windows11安裝編譯QtMvvm

windows11安裝編譯QtMvvm 1 從github下載代碼2 官方的Download/Installtion3 自行構建編譯QtMvvm遇到的問題3.1 `qmake`問題執行命令報錯原因分析qmake報錯:找不到編譯器 cl解決方案3.2 `make qmake_all`問題執行命令報錯原因分析make命令未識別解決方案3.3 缺少`perl`問題執行…

unix/linux source 命令,其歷史爭議、兼容性、生態、未來展望

現在把目光投向unix/linux source命令的歷史爭議、兼容性、生態和未來展望,這能讓我們更全面地理解一個技術點在更廣闊的圖景中所處的位置。 一、歷史爭議與設計權衡 雖然 source (或 .) 命令功能強大且不可或缺,但在其發展和使用過程中,也存在一些微妙的爭議或設計上的權衡…