條件、列表渲染.

#### v-for

1. 渲染列表

```vue

<template>

? ? <ul v-for="(item,index) in list" >

? ? ? ? <li>{{ item }}</li>

? ? </ul>

</template>

<script setup>

? ? import { ref } from 'vue';

? ? let list = ref(['蘋果', '香蕉', '橙子'])

</script>

```

2. 渲染對象列表

- ![alt text](./img/image-11.png)

```vue

? ? <ul v-for="(item,index) in list" >

? ? ? ? <li>{{ item.name }} - {{ item.age }}</li>

? ? </ul>

```

3. 動態添加列表項

- ![alt text](./img/image-12.png)

```vue

<template>

? ? <input type="text" v-model="txt" placeholder="請輸入內容">

? ? <input type="button" value="添加到列表" @click="btn">

? ? <ul v-for="item in list" >

? ? ? ? <li>{{ item}}</li>

? ? </ul>

</template>

<script setup>

? ? import { ref } from 'vue';

? ? let txt = ref('')

? ? let list = ref([])

? ? const btn = ()=>{

? ? ? ? list.value.push(txt.value)

? ? }

</script>

```

4. 渲染嵌套列表

- ![alt text](./img/image-13.png)

```vue

<template>

? ? <ul v-for="(item,index) in list" >

? ? ? ? <li>子數組{{index+1}}:

? ? ? ? ? ? <ul>

? ? ? ? ? ? ? ? <li>{{ item }}</li>

? ? ? ? ? ? </ul>

? ? ? ? </li>

? ? </ul>

</template>

<script setup>

? ? let list = ref([['蘋果', '香蕉'], ['橙子', '葡萄']])

</script>

```

5. 分組渲染列表

- ![alt text](./img/image-14.png)

```vue

<template>

? ? <ul v-for="(item,index) in list">

? ? ? ? <h2 v-if="index === 0 || item.group !== list[index-1].group">{{ item.group }}</h2>

? ? ? ? <li>{{ item.name }}</li>

? ? </ul>

</template>

<script setup>

list.value.sort((a,b)=>a.group.localeCompare(b.group))

</script>

```

6. 分組渲染列表

- ![alt text](./img/image-15.png)

- ![alt text](./img/image-16.png)

```vue

<template>

? ? <input type="button" value="按名字排序" @click="btnName">

? ? <input type="button" value="按年齡排序" @click="btnAge">

? ? <ul v-for="(item,index) in list">

? ? ? ? <li>{{ item.name }} - {{ item.age }}</li>

? ? </ul>

</template>

<script setup>

import { ref } from 'vue';

let list = ref([ { name: '張三', age: 20 }, { name: '李四', age: 22 }, { name: '王五', age: 18 } ])

let btnName = ()=>{

? ?list.value.sort((a,b)=>a.name.localeCompare(b.name))

}

let btnAge = ()=>{

? ? list.value.sort((a, b) => a.age - b.age);

}

</script>

```






?

### 筆記

#### 條件渲染

1. `v-if`

- 也可在 `<template>` 上使用

? ? ```html

? ? <h1 v-if="awesome">Vue is awesome!</h1>

? ? <h1 v-else>Oh no 😢</h1>

? ? ```

- **`v-else-if` 指令**

? ? ```html

? ? <div v-if="type === 'A'">A</div>

? ? <div v-else-if="type === 'B'">B</div>

? ? <div v-else-if="type === 'C'">C</div>

? ? <div v-else>Not A/B/C</div>

? ? ```

2. `v-show`

? - 通過切換 `display` CSS 屬性來顯示或隱藏元素【元素始終會被渲染,只是樣式被切換】

? ? ```html

? ? <h1 v-show="ok">Hello!</h1>

? ? ```

3. 區別

? - `v-if` 初始渲染時條件為假則不渲染任何內容。

? - `v-show` 始終渲染元素,僅切換 `display` 屬性。

? - `v-if` 【切換】開銷高,適合條件很少改變;`v-show` 初始渲染開銷高但切換開銷低,適合頻繁切換


?

#### 列表渲染

- **`v-for` 指令**

? - 基于數組或對象渲染列表。

? - 需要使用 `item in items` 形式的語法,其中 `items` 是數組或對象,`item` 是迭代項的別名。

? - 支持可選的第二個參數表示當前項的位置索引。

? ? ```html

? ? <li v-for="(item, index) in items">

? ? ? {{ parentMessage }} - {{ index }} - {{ item.message }}

? ? </li>

? ? ```

- **`v-for` 與對象**

? - 支持三個參數:`value`、`key` 和 `index`。

? ? ```html

? ? <li v-for="(value, key, index) in myObject">

? ? ? {{ index }}. {{ key }}: {{ value }}

? ? </li>

? ? ```

- **`v-for` 與范圍值**

? - `v-for` 可以直接接受整數值,用于重復渲染指定次數。

? ? ```html

? ? <span v-for="n in 10">{{ n }}</span>

? ? ```


?

- **`v-for` 與 `v-if`**

? - 建議將 `v-for` 放在 `<template>` 上,再在其內部使用 `v-if`。

? ? ```html

? ? <template v-for="todo in todos">

? ? ? <li v-if="!todo.isComplete">

? ? ? ? {{ todo.name }}

? ? ? </li>

? ? </template>

? ? ```

- **通過 `key` 管理狀態**:幫助 Vue 跟蹤節點的標識,以重用和重新排序現有元素。

? ? ```html

? ? <div v-for="item in items" :key="item.id">

? ? ? <!-- 內容 -->

? ? </div>

? ? ```


?

- ?`:style` :動態樣式綁定

? ? ```html

? ? <div :style="{ color: textColor, fontSize: fontSize + 'px' }">Styled Div</div>

? ? ```

- **`class` 綁定**

? - 使用 `:class="$attrs"` 將父組件傳遞的屬性綁定到子組件的 `class` 上。

? ? ```html

? ? <div :class="$attrs">Class Binding</div>

? ? ```

- **`v-if` 與 `v-show` 的 DOM 行為**

? - `v-if` 無論 `true` 或 `false`,DOM 元素都存在,只是根據條件渲染或銷毀。

? - `v-show` 使用樣式控制顯示與否,DOM 元素始終存在。

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

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

相關文章

node20的安裝和vue的入門準備

一、node20的安裝 直接下載路徑&#xff1a;https://nodejs.org/download/release/v20.11.0/node-v20.11.0-x64.msi 安裝&#xff0c;雙擊msi文件 點擊同意協議 更改下載路徑 什么也不用選&#xff0c;點擊next進行下一步 什么也不用選&#xff0c;點擊next進行下一步 點擊安…

從 Java 到 Kotlin:在現有項目中遷移的最佳實踐!

全文目錄&#xff1a; 開篇語 1. 為什么選擇 Kotlin&#xff1f;1.1 Kotlin 與 Java 的兼容性1.2 Kotlin 的優勢1.3 Kotlin 的挑戰 2. Kotlin 遷移最佳實踐2.1 漸進式遷移2.1.1 步驟一&#xff1a;將 Kotlin 集成到現有的構建工具中2.1.2 步驟二&#xff1a;逐步遷移2.1.3 步驟…

威雅利電子|業界領先的高隔離度用于5G基站的吸收式SPDT開關“NT1819“

業界領先的高隔離度 用于5G基站的吸收式SPDT開關"NT1819" 為了實現智能社會&#xff0c;已經啟動了5G服務。這樣&#xff0c;高速、低延遲、大容量的數據通信成為可能&#xff0c;也給我們的生活和工業發展帶來了巨大的變化。 在5G基站有很多天線&#xff0c;每個天…

Diamond軟件的使用--(6)訪問FPGA的專用SPI接口

1.什么是FPGA的專用SPI接口&#xff1f; 此處的SPI FLASH接口即為FPGA的專用SPI接口&#xff0c;上電時&#xff0c;FPGA從該FLASH讀出程序并運行。 2.訪問SPI PROM需要注意哪些地方&#xff1f; 1&#xff09;處于MASTER SPI MODE 2&#xff09;調用USRMCLK原語&#xff0c;…

Go 語言中的 `select` 語句詳解

select 是 Go 語言中處理通道(Channel)操作的一個強大控制結構&#xff0c;它允許 goroutine 同時等待多個通道操作。下面我將全面詳細地解釋 select 語句的各個方面。 基本語法 select 語句的基本語法如下&#xff1a; select { case <-ch1:// 如果從 ch1 成功接收數據&…

AI如何重塑CC防護行業?五大變革與實戰策略解析

一、CC防護行業的技術痛點與AI的破局方向 CC攻擊&#xff08;Challenge Collapsar&#xff09;作為一種以高頻合法請求消耗服務器資源的DDoS攻擊手段&#xff0c;傳統防護技術面臨三大核心挑戰&#xff1a; 規則依賴性強&#xff1a;基于IP封禁或請求頻率的靜態規則易被繞過&a…

GPT-4o最新圖像生成完全指南:10大應用場景與提示詞模板

引言 OpenAI于近期推出的全新GPT-4o圖像生成功能&#xff0c;代表了AI圖像創作領域的重大突破。作為一個原生多模態系統&#xff0c;GPT-4o將文本理解和圖像生成無縫整合&#xff0c;為創作者、教育工作者和專業人士提供了前所未有的視覺創作靈活性。本文將分享10個GPT-4o圖像…

Linux驅動開發2 - 內核定時器驅動

背景 所有驅動開發都是基于全志T507&#xff08;Android 10&#xff09;進行開發&#xff0c;用于記錄驅動開發過程。 簡介 定時器是比較常用的一個功能&#xff0c;用來執行周期性任務。一般不太精確的定時可以用系統提供的延時函數進行。如果需要進行較為精確的延時&#…

Dify 使用 excel 或者 csv 文件創建知識庫

Dify 使用 excel 或者 csv 文件創建知識庫 1. 創建知識庫2. 創建聊天助手3. 其他 1. 創建知識庫 創建知識庫&#xff0c;導入excel/csv文件&#xff0c; 文件內容&#xff0c; 單擊 “預覽塊”&#xff0c;可以確認會生成多個鍵值對的塊&#xff0c; 配置 Embedding 模型和檢索…

23種設計模式-行為型模式之迭代器模式(Java版本)

Java 迭代器模式&#xff08;Iterator Pattern&#xff09;詳解 &#x1f9e0; 什么是迭代器模式&#xff1f; 迭代器模式是一種行為型設計模式&#xff0c;它提供一種方法順序訪問一個聚合對象中的各個元素&#xff0c;而不暴露該對象的內部表示。 &#x1f3af; 使用場景 …

使用nodeJs的express+axios+cors做代理

使用nodeJs的expressaxioscors做代理 前端在請求后端時通常會遇到跨域cors問題&#xff0c;如果只在本地開發可以通過webpack或vite的proxy設置。但如果需要在線上或者其他地方繞過跨域&#xff0c;可以使用代理的方法。 1. 創建文件夾 并創建以下文件 package.json {"…

T檢驗、F檢驗及樣本容量計算學習總結

目錄 〇、碎語一、假設檢驗1.1 兩種錯誤1.2 z檢驗和t檢驗1.3 t檢驗1.3.1 單樣本t檢驗1.3.2 配對樣本t檢驗1.3.3 獨立樣本t檢驗1.4 方差齊性檢驗1.4 卡方檢驗二、樣本容量的計算2.1 AB測試主要的兩種應用場景2.2 絕對量的計算公式2.3 率的計算公式參考資料〇、碎語 聽到最多的檢…

tensorflow使用詳解

一、TensorFlow基礎環境搭建 安裝與驗證 # 安裝CPU版本 pip install tensorflow# 安裝GPU版本&#xff08;需CUDA 11.x和cuDNN 8.x&#xff09; pip install tensorflow-gpu# 驗證安裝 python -c "import tensorflow as tf; print(tf.__version__)"核心概念 Tensor…

Redis的阻塞

Redis的阻塞 Redis的阻塞問題主要分為內在原因和外在原因兩大類&#xff0c;以下從這兩個維度展開分析&#xff1a; 一、內在原因 1. 不合理使用API或數據結構 Redis 慢查詢 Redis 慢查詢的界定 定義&#xff1a;Redis 慢查詢指命令執行時間超過預設閾值&#xff08;默認 10m…

SLAM學習系列——ORB-SLAM3安裝(Ubuntu20-ROS/Noetic)

ORB-SLAM3學習&#xff08;Ubuntu20-ROS&#xff09; 0 主要參考文獻1 ORB-SLAM3安裝環境配置1.0 前言1.0.0 關于ORB-SLAM3安裝版本選擇1.0.1 本文配置操作匯總(快速配置)1.0.1.1 ORB_SLAM3環境配置&#xff1a;1.0.1.2 ORB_SLAM3安裝1.0.1.3 ORB_SLAM的ROS接口 1.1 C&#xff…

【應用密碼學】實驗二 分組密碼(2)

一、實驗要求與目的 1&#xff09; 學習AES密碼算法原理 2&#xff09; 學習AES密碼算法編程實現 二、實驗內容與步驟記錄&#xff08;只記錄關鍵步驟與結果&#xff0c;可截圖&#xff0c;但注意排版與圖片大小&#xff09; 字符串加解密 運行python程序&#xff0c;輸入…

區塊鏈基石解碼:分布式賬本的運行奧秘與技術架構

區塊鏈技術的革命性源于其核心組件——分布式賬本&#xff08;Distributed Ledger&#xff09;。這一技術通過去中心化、透明性和不可篡改性&#xff0c;重塑了傳統數據存儲與交易驗證的方式。本文將從分布式賬本的核心概念、實現原理、應用場景及挑戰等方面展開&#xff0c;揭…

AUTOSAR_RS_ClassicPlatformDebugTraceProfile

AUTOSAR經典平臺調試、跟蹤與分析支持 AUTOSAR組件調試、跟蹤與分析功能詳解 目錄 簡介ARTI核心擴展 核心特定ARTI擴展結構核心參數定義 操作系統和任務擴展 OS特定ARTI擴展任務特定ARTI擴展軟件組件特定擴展 總體架構 組件結構接口定義 錯誤處理 默認錯誤跟蹤器(DET) 總結 1.…

SpringBoot配置RestTemplate并理解單例模式詳解

在日常開發中&#xff0c;RestTemplate 是一個非常常用的工具&#xff0c;用來發起HTTP請求。今天我們通過一個小例子&#xff0c;不僅學習如何在SpringBoot中配置RestTemplate&#xff0c;還會深入理解單例模式在Spring中的實際應用。 1. 示例代碼 我們首先來看一個基礎的配置…

DPIN在AI+DePIN孟買峰會闡述全球GPU生態系統的戰略愿景

DPIN基金會在3月29日于印度孟買舉行的AIDePIN峰會上展示了其愿景和未來5年的具體發展計劃&#xff0c;旨在塑造去中心化算力的未來。本次活動匯集了DPIN、QPIN、社區成員和Web3行業資深顧問&#xff0c;深入探討DPIN構建全球領先的去中心化GPU算力網絡的戰略&#xff0c;該網絡…