vue指令

v-text

更新元素的 textContent。如果要更新部分的 textContent,需要使用 {{ Mustache }} 插值。

<span v-text="msg"></span>
<!-- 和下面的一樣 -->
<span>{{msg}}</span>

v-html

更新元素的 innerHTML。注意:內容按普通 HTML 插入 - 不會作為 Vue 模板進行編譯。如果試圖使用 v-html 組合模板,可以重新考慮是否通過使用組件來替代。
在網站上動態渲染任意 HTML 是非常危險的,因為容易導致 XSS 攻擊。只在可信內容上使用 v-html,永不用在用戶提交的內容上。
在單文件組件里,scoped 的樣式不會應用在 v-html 內部,因為那部分 HTML 沒有被 Vue 的模板編譯器處理。如果你希望針對 v-html 的內容設置帶作用域的 CSS,你可以替換為 CSS Modules 或用一個額外的全局 <style> 元素手動設置類似 BEM 的作用域策略。

<div v-html="html"></div>

v-show

根據表達式之真假值,切換元素的 display CSS property。當條件變化時該指令觸發過渡效果。
另一個用于根據條件展示元素的選項是 v-show 指令。用法大致一樣:
不同的是帶有 v-show 的元素始終會被渲染并保留在 DOM 中。v-show 只是簡單地切換元素的 CSS property display
注意,v-show 不支持 <template> 元素,也不支持 v-else

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

v-if

根據表達式的值的 truthiness 來有條件地渲染元素。在切換時元素及它的數據綁定 / 組件被銷毀并重建。如果元素是 <template>,將提出它的內容作為條件塊。
當條件變化時該指令觸發過渡效果。
當和 v-if 一起使用時,v-for 的優先級比 v-if 更高。詳見列表渲染教程
v-if 是“真正”的條件渲染,因為它會確保在切換過程中條件塊內的事件監聽器和子組件適當地被銷毀和重建。
v-if 也是惰性的:如果在初始渲染時條件為假,則什么也不做——直到條件第一次變為真時,才會開始渲染條件塊。
相比之下,v-show 就簡單得多——不管初始條件是什么,元素總是會被渲染,并且只是簡單地基于 CSS 進行切換。
一般來說,v-if 有更高的切換開銷,而 v-show 有更高的初始渲染開銷。因此,如果需要非常頻繁地切換,則使用 v-show 較好;如果在運行時條件很少改變,則使用 v-if 較好。
不推薦同時使用 v-ifv-for。請查閱風格指南以獲取更多信息。
v-ifv-for 一起使用時,v-for 具有比 v-if 更高的優先級。請查閱列表渲染指南以獲取詳細信息。

<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>

Vue 會盡可能高效地渲染元素,通常會復用已有元素而不是從頭開始渲染。這么做除了使 Vue 變得非常快之外,還有其它一些好處。例如,如果你允許用戶在不同的登錄方式之間切換:

<template v-if="loginType === 'username'"><label>Username</label><input placeholder="Enter your username">
</template>
<template v-else><label>Email</label><input placeholder="Enter your email address">
</template>

那么在上面的代碼中切換 loginType 將不會清除用戶已經輸入的內容。因為兩個模板使用了相同的元素,<input> 不會被替換掉——僅僅是替換了它的 placeholder

<template v-if="loginType === 'username'"><label>Username</label><input placeholder="Enter your username" key="username-input">
</template>
<template v-else><label>Email</label><input placeholder="Enter your email address" key="email-input">
</template>

現在,每次切換時,輸入框都將被重新渲染。
注意,<label> 元素仍然會被高效地復用,因為它們沒有添加 key attribute

v-for

基于源數據多次渲染元素或模板塊。此指令之值,必須使用特定語法 alias in expression,為當前遍歷的元素提供別名:

<div v-for="item in items">{{ item.text }}
</div>

另外也可以為數組索引指定別名 (或者用于對象的鍵):

<div v-for="(item, index) in items"></div>
<div v-for="(val, key) in object"></div>
<div v-for="(val, name, index) in object"></div>

v-for 的默認行為會嘗試原地修改元素而不是移動它們。要強制其重新排序元素,你需要用特殊 attribute key 來提供一個排序提示:

<div v-for="item in items" :key="item.id">{{ item.text }}
</div>

從 2.6 起,v-for 也可以在實現了可迭代協議的值上使用,包括原生的 MapSet。不過應該注意的是 Vue 2.x 目前并不支持可響應的 MapSet 值,所以無法自動探測變更。
我們可以用 v-for 指令基于一個數組來渲染一個列表。v-for 指令需要使用 item in items 形式的特殊語法,其中 items 是源數據數組,而 item 則是被迭代的數組元素的別名。

<ul id="example-1"><li v-for="item in items" :key="item.message">{{ item.message }}</li>
</ul>
var example1 = new Vue({el: '#example-1',data: {items: [{ message: 'Foo' },{ message: 'Bar' }]}
})

v-for 塊中,我們可以訪問所有父作用域的 propertyv-for 還支持一個可選的第二個參數,即當前項的索引。

<ul id="example-2"><li v-for="(item, index) in items">{{ parentMessage }} - {{ index }} - {{ item.message }}</li>
</ul>
var example2 = new Vue({el: '#example-2',data: {parentMessage: 'Parent',items: [{ message: 'Foo' },{ message: 'Bar' }]}
})

你也可以用 of 替代 in 作為分隔符,因為它更接近 JavaScript 迭代器的語法:

<div v-for="item of items"></div>

你也可以用 v-for 來遍歷一個對象的 property

<ul id="v-for-object" class="demo"><li v-for="value in object">{{ value }}</li>
</ul>
new Vue({el: '#v-for-object',data: {object: {title: 'How to do lists in Vue',author: 'Jane Doe',publishedAt: '2016-04-10'}}
})

還可以用第三個參數作為索引:

<div v-for="(value, name, index) in object">{{ index }}. {{ name }}: {{ value }}
</div>

在遍歷對象時,會按 Object.keys() 的結果遍歷,但是不能保證它的結果在不同的 JavaScript 引擎下都一致。
Vue 正在更新使用 v-for 渲染的元素列表時,它默認使用“就地更新”的策略。如果數據項的順序被改變,Vue 將不會移動 DOM 元素來匹配數據項的順序,而是就地更新每個元素,并且確保它們在每個索引位置正確渲染。這個類似 Vue 1.x 的 track-by="$index"。

這個默認的模式是高效的,但是只適用于不依賴子組件狀態或臨時 DOM 狀態 (例如:表單輸入值) 的列表渲染輸出。

為了給 Vue 一個提示,以便它能跟蹤每個節點的身份,從而重用和重新排序現有元素,你需要為每項提供一個唯一 key attribute

<div v-for="item in items" v-bind:key="item.id"><!-- 內容 -->
</div>

建議盡可能在使用 v-for 時提供 key attribute,除非遍歷輸出的 DOM 內容非常簡單,或者是刻意依賴默認行為以獲取性能上的提升。
因為它是 Vue 識別節點的一個通用機制,key 并不僅與 v-for 特別關聯。后面我們將在指南中看到,它還具有其它用途。
不要使用對象或數組之類的非基本類型值作為 v-forkey。請用字符串或數值類型的值。

key 的特殊 attribute 主要用在 Vue 的虛擬 DOM 算法,在新舊 nodes 對比時辨識 VNodes。如果不使用 keyVue 會使用一種最大限度減少動態元素并且盡可能的嘗試就地修改/復用相同類型元素的算法。而使用 key 時,它會基于 key 的變化重新排列元素順序,并且會移除 key 不存在的元素。
有相同父元素的子元素必須有獨特的 key。重復的 key 會造成渲染錯誤。
最常見的用例是結合 v-for

<ul><li v-for="item in items" :key="item.id">...</li>
</ul>

它也可以用于強制替換元素/組件而不是重復使用它。當你遇到如下場景時它可能會很有用:
完整地觸發組件的生命周期鉤子
觸發過渡

<transition><span :key="text">{{ text }}</span>
</transition>

text 發生改變時,<span> 總是會被替換而不是被修改,因此會觸發過渡。

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

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

相關文章

基于高通MSM8953平臺android9.0的GPIO驅動開發

2.1、注冊設備&#xff1a; 2.1.1、添加編譯選項&#xff1a; 1&#xff09;、修改kernel/msm-4.9/drivers/leds下Makefile文件&#xff1a; obj-$(CONFIG_LED_GPIO) led_gpio.o 2&#xff09;、修改kernel/msm-4.9/drivers/leds下Kconfig文件&#xff1a; config LED_GPIO…

Java實現歸并排序算法

歸并排序算法 &#xff08;1&#xff09;基本思想&#xff1a;歸并&#xff08;Merge&#xff09;排序法是將兩個&#xff08;或兩個以上&#xff09;有序表合并成一個新的有序表&#xff0c;即把待排序序列分為若干個子序列&#xff0c;每個子序列是有序的。然后再把有序子序…

蛋白質序列FeatureDict轉化為TensorDict

主要轉化語句為 tensor_dict {k: tf.constant(v) for k, v in np_example.items() if k in features_metadata}。 增加了特征名稱的選擇&#xff0c;不同特征維度&#xff0c;特征數的判斷等。 from typing import Dict, Tuple, Sequence, Union, Mapping, Optional #import …

postgresql_conf中常用配置項

在 PostgreSQL 的 postgresql.conf 配置文件中&#xff0c;有許多常用的配置項&#xff0c;這些配置項可以根據特定需求和性能優化進行調整。以下是一些常用的配置項及其作用&#xff1a; 1. shared_buffers 用于設置 PostgreSQL 實例使用的共享內存緩沖區大小。增加此值可以…

游戲被攻擊該怎么辦?游戲盾該如何使用,游戲盾如何防護攻擊

隨著Internet互聯網絡帶寬的增加和多種DDOS黑客工具的不斷發布&#xff0c;DDOS拒絕服務攻擊的實施越來越容易&#xff0c;DDOS攻擊事件正在成上升趨勢。出于商業競爭、打擊報復和網絡敲詐等多種因素&#xff0c;導致很多商業站點、游戲服務器、聊天網絡等網絡服務商長期以來一…

Nacos 配置加密功能也太雞肋了吧,有種更好的方式

大家好&#xff0c;我是風箏&#xff0c;微信搜「古時的風箏」&#xff0c;更多干貨 當項目中用了 Nacos 做配置中心&#xff0c;是不是所有的配置都放到里面呢&#xff0c;大部分時候為了省事和統一&#xff0c;系統所有的配置都直接放在里面了&#xff0c;有時候&#xff0c…

什么是自動化測試框架?常用的自動化測試框架有哪些?

無論是在自動化測試實踐&#xff0c;還是日常交流中&#xff0c;經常聽到一個詞&#xff1a;框架。之前學習自動化測試的過程中&#xff0c;一直對“框架”這個詞知其然不知其所以然。 最近看了很多自動化相關的資料&#xff0c;加上自己的一些實踐&#xff0c;算是對“框架”…

Redis相關知識

yum安裝redis 使用以下命令&#xff1a;直接將redis安裝到Linux服務器&#xff08;Xshell&#xff09;中 yum -y install redis 啟動redis 使用以下命令&#xff0c;以后臺運行方式啟動redis redis-server /etc/redis.conf & 操作redis 使用以下命令啟動redis客戶端 redis-…

RFID在新能源工廠大放異彩

RFID在新能源工廠大放異彩 我國在十四五規劃中提出了建設綠色低碳發展的目標&#xff0c;新能源產業成為了國家發展的重點領域之一&#xff0c;開始大力支持各種新能源廠商發展。各個廠商之間不僅比產品、比技術。也比生產想要降本增效&#xff0c;為了實現這一目標&#xff0…

MBD Introduction

介紹 MATLAB是MathWorks公司的商業數學軟件&#xff0c;應用于科學計算、可視化以及交互式程序設計等高科技計算環境。Simulink是MATLAB中的一種可視化仿真工具。 Simulink是一個模塊圖環境&#xff0c;用于多域仿真以及基于模型的設計。它支持系統設計、仿真、自動代碼生成以…

Spring基于xml半注解開發

目錄 Component的使用 依賴注解的使用 非自定義Bean的注解開發 Component的使用 基本Bean注解&#xff0c;主要是使用注解的方式替代原有的xml的<bean>標簽及其標簽屬性的配置&#xff0c;使用Component注解替代<bean>標簽中的id以及class屬性&#xff0c;而對…

算法Day26 數位統計

數位統計 Description 給你一個整數n&#xff0c;統計并返回各位數字都不同的數字x的個數&#xff0c;其中0 ≤ x < 10^n。 Input 輸入整數n 0≤n≤13 Output 輸出整數個數 Sample 代碼 import java.util.Scanner;public class Main {public static void main(String[] ar…

一個Oracle Application Container的實例

本例基本涵蓋了Oracle Multitenant功能中application container的以下內容&#xff1a; 創建application container/root創建application PDB創建application SEED在application root中安裝application在application root中升級application同步application 整個過程如下 創建…

Epoll服務器(ET工作模式)

目錄 Epoll ET服務器設計思路Connection類TcpServer類 回調函數Accepter函數Recever函數Sender函數Excepter函數 事件處理套接字相關接口封裝運行Epoll服務器 Epoll ET服務器 設計思路 在epoll ET服務器中&#xff0c;我們需要處理如下幾種事件&#xff1a; 讀事件&#xff…

基于javeweb實現的圖書借閱管理系統

一、系統架構 前端&#xff1a;jsp | js | css | jquery 后端&#xff1a;servlet | jdbc 環境&#xff1a;jdk1.7 | mysql | tocmat 二、代碼及數據庫 三、功能介紹 01. 登錄頁 02. 首頁 03. 圖書管理 04. 讀者管理 05. 圖書分類管理 06. 圖書借閱信息 07. 圖書歸還信…

CDN加速技術:降低服務器與網站成本的智慧選擇

隨著互聯網的飛速發展&#xff0c;網站的訪問量不斷攀升&#xff0c;服務器負載壓力逐漸增大。為了提高用戶體驗、降低服務器成本&#xff0c;并確保網站的高可用性&#xff0c;CDN&#xff08;內容分發網絡&#xff09;加速技術應運而生。本文將從服務器與網站成本的角度分析C…

NLP項目實戰01--電影評論分類

介紹&#xff1a; 歡迎來到本篇文章&#xff01;在這里&#xff0c;我們將探討一個常見而重要的自然語言處理任務——文本分類。具體而言&#xff0c;我們將關注情感分析任務&#xff0c;即通過分析電影評論的情感來判斷評論是正面的、負面的。 展示&#xff1a; 訓練展示如下…

比較不同聚類方法的評估指標

歸一化互信息&#xff08;NMI&#xff09; 要求&#xff1a;需要每個序列的真實標簽&#xff08;分類信息&#xff09;

你在地鐵上修過bug嗎?

作為技術人員&#xff0c;有沒有遇到下班路上收到老板電話&#xff0c;系統故障&#xff0c;然后地鐵上掏出電腦&#xff0c;修bug的場景。自己負責的業務線上出現問題&#xff0c;負責人心里是很慌的&#xff0c;在這種心理狀態下做事很容易二次犯錯&#xff0c;造成更大的問題…

SAP UI5 walkthrough step10 Descriptor for Applications

在這一步&#xff0c;我們將會把所有的應用相關的描述性的文件獨立放到manifest.json 新建一個manifest.json文件 webapp/manifest.json (New) {"_version": "1.58.0","sap.app": {"id": "ui5.walkthrough","i18n&q…