Vue2-指令語法

v-bind和v-model

<a v-bind:href="url">筆記1</a>
<a :href="url">筆記2</a><input type="text" v-model:value="name"/>
<input type="text" v-model="name"/>data(){return {url:"http://123.57.27.43:9908/mimi/index.html",name:"馬朋帥"}
}

例:

<form><!-- 復選框 值為value -->1<input type="checkbox" v-model="userInfo.hobby" value="study">2<input type="checkbox" v-model="userInfo.hobby" value="game">3<input type="checkbox" v-model="userInfo.hobby" value="eat"><!-- 下拉框 --><select v-model="userInfo.city"><option value="">請選擇</option><option value="beijing">北京</option><option value="shanghai">上海</option></select><!-- 文本域 體現v-model的修飾符--><textarea v-model.lazy="userInfo.other"></textarea><!-- 復選框 值為布爾值--><input type="checkbox" v-model="userInfo.agree">閱讀并接受
</form>
<script>userInfo:{hobby:[],city:'beijing',other:'',agree:''  // v-model的初始值是非數組收集的是checkbox的布爾值}
</script>

v-model只能用于表單元素的value

v-model的三個修飾符:

  1. lazy:失去焦點再收集數據
  2. number:輸入字符串轉為有效的數字
  3. trim:輸入首尾空格過濾

v-on

<button v-on:click="open1">1</button>
<button @click="open2">2</button>
<button @click="open3($event,66)">3</button><script>new Vue({el:"#root",methods:{open1(){console.log("v-on");},open2(){console.log("@");},open3(event,num){console.log(this); //vue對象console.log(event); //$event(vue中的標識符)就是這個按鈕2console.log(num);}}})
</script>

事件修飾符

  1. prevent:阻止默認事件(比如:a標簽href屬性的連接跳轉)
  2. stop:阻止事件冒泡
  3. once:事件只觸發一次
  4. capture:使用事件的捕獲模式
  5. self:只有event.target是當前操作的元素時才觸發
  6. passive:事件的默認行為立即執行,無需等待事件的回調執行完畢
  7. native:給組件綁定事件。例:<Student @click.native="show()"/>
<body><div id="root"><a href="http://www.baidu.com" @click.prevent="showInfo">a標簽</a></div><script type="text/javascript">new Vue({el:"#root",data(){return {name:"馬朋帥"}},methods:{showInfo(){alert('事件修飾符')}}})</script>
</body>

捕獲模式:盒子從外到內執行元素的綁定事件

冒泡模式:從內到外執行元素的綁定事件(默認使用冒泡模式執行事件)(先捕獲后冒泡)

@scroll=“aaa” 滾動條滾動事件,@wheel=“aaa” 鼠標滾輪的滾動事件

@wheel先執行aaa函數,完成后鼠標滾輪滾動(可以用passive解決),@scroll無此類問題

@click.prevent.stop 可以連寫

v-if和v-show

v-if:把元素去掉或顯示(用于切換少)

v-if="“和v-else-if=”“和v-else=”"要一起用必須連這寫

v-show:把元素隱藏或顯示(用于切換頻繁)

v-for

<div id="root"><!-- 遍歷數組 --><ul><li v-for="(p,index) of persons" :key="index">{{p.name}}</li></ul><!-- 遍歷對象 --><ul><li v-for="(value,key) of car" :key="key">{{key}}-{{value}}</li></ul><!-- 遍歷字符串 --><ul><li v-for="(char,index) of str" :key="index">{{index}}-{{char}}</li></ul><!-- 遍歷指定次數 --><ul><li v-for="(num,index) of 6" :key="index">{{index}}-{{num}}</li></ul></div>
<script type="text/javascript">new Vue({el: "#root",data() {return {persons: [{id:'001',name:'張三'},{id:'002',name:'李四'},{id:'003',name:'王五'}],car:{name: '張三',age: 18},str: 'hello',}}})
</script>

key 的原理

用index作為key可能會引發的問題:

  1. 若對數據進行:逆序添加(在數組前面插入元素)、逆序刪除(刪除數組前面,中間的數據)等破壞順序的操作:

    會產生沒有必要的真實DOM更新 ==> 界面沒問題(效率低)

    原因:一次頁面渲染前后key對應的元素相同會復用(因為在數組最前面添加元素,index都會往后移一個,key對應的元素跟以前對不上不會復用)

  2. 如果結構中還包含輸入類的DOM(比如:Input框):

    會產生錯誤DOM更新 ==> 界面有問題(效率低)。

    原因:一次頁面渲染前后key對應的元素相同會復用,Vue不會變的Input的value只判斷他的結構,結構相同會復用可能Input的value不同頁面發生錯誤

開發中如何選擇key(以上問題的解決方法):

? a. 最好使用每條數據的唯一標識作為key, 比如id、手機號、身份證號、學號等唯一值。

? b. 如果不存在對數據的逆序添加、逆序刪除等破壞順序操作,僅用于渲染列表用于展示,使用index作為key是沒有問題的。

v-text和v-html

<div id="root"><div>{{name}}</div><div v-text="name"></div><div v-html="nameMmm"></div>
</div>
<script type="text/javascript">new Vue({el: "#root",data() {return {name : "張三",nameMmm: "<a href='#'>張三</a>"}}})
</script>

v-cloak

vue文件加載慢的時候頁面可能出現 {{name}}

解決方法(兩種):

(第一種)把vue.js文件放在HTML文件的前面head里面

(第二種)v-cloak,用法:在有上述問題的標簽上加v-cloak標簽,當加載到vue.js文件后,就會去除該標簽

<head><style>[v-cloak]{display: none;}</style>
</head>
<body>
<div id="root"><div v-cloak>{{name}}</div>
</div>
<script type="text/javascript">const vm = new Vue({el: "#root",data() {return {name : "張三",}}})
</script>

v-once和v-pre

v-once:頁面第一次加載的時候讀取變量,之后變量變化值不改變

<div id="root"><div v-once>{{n}}</div><div>{{n}}</div><button @click="n++">n++</button>
</div>
<script type="text/javascript">new Vue({el: "#root",data() {return {n : 1,}}})
</script>

v-pre:vue不會解析帶有該屬性的標簽

自定義指令(略)

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

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

相關文章

mac brew 無法找到php7.2 如何安裝php7.2

mac brew 無法找到php7.2 如何安裝php7.2 原因是升級過高版本的brew后已經不支持7.2了&#xff0c;但可以通過第三方工具來安裝 brew tap shivammathur/php brew install shivammathur/php/php7.2標題安裝完成后會提示以下信息&#xff1a; The php.ini and php-fpm.ini fil…

想要從視頻中提取背景音樂怎么搞?其實視頻提取音頻非常簡單

在日常生活中&#xff0c;我們經常遇到這樣的情況&#xff1a;有一段非常精彩的視頻&#xff0c;而其中的背景音樂或對話正是你所需要的。這時&#xff0c;如果能將這段音頻單獨提取出來&#xff0c;就可以方便地在其他場合使用了。通過一些專業的軟件工具&#xff0c;如 Video…

第十六屆藍橋杯網安初賽wp

解題列表 根據提示一步一步走&#xff0c;經過猜測&#xff0c;測試出app.py 經過仔細研讀代碼&#xff0c;找到密鑰 編寫python代碼拿到flag key secret_key9828 flagd9d1c4d9e0d6c29e9aad71696565d99bc8d892a8979ec7a69b9a6868a095c8d89dac91d19ba9716f63b5 newbytearray(…

【leetcode100】單詞拆分

1、題目描述 給你一個字符串 s 和一個字符串列表 wordDict 作為字典。如果可以利用字典中出現的一個或多個單詞拼接出 s 則返回 true。 注意&#xff1a;不要求字典中出現的單詞全部都使用&#xff0c;并且字典中的單詞可以重復使用。 示例 1&#xff1a; 輸入: s "l…

機器人項目管理新風口:如何高效推動智能機器人研發?

在2025年政府工作報告中&#xff0c;“智能機器人”首次被正式納入國家發展戰略關鍵詞。從蛇年春晚的秧歌舞機器人驚艷亮相&#xff0c;到全球首個人形機器人馬拉松的熱議&#xff0c;智能機器人不僅成為科技前沿的焦點&#xff0c;也為產業升級注入了新動能。而在熱潮背后&…

k8s學習記錄(四):節點親和性

一、前言 在上一篇文章里&#xff0c;我們了解了 Pod 中的nodeName和nodeSelector這兩個屬性&#xff0c;通過它們能夠指定 Pod 調度到哪個 Node 上。今天&#xff0c;我們將進一步深入探索 Pod 相關知識。這部分內容不僅信息量較大&#xff0c;理解起來也有一定難度&#xff0…

NeRF:原理 + 實現 + 實踐全流程配置+數據集測試【Ubuntu20.04 】【2025最新版】

一、引言 從三維建模、虛擬現實到電影級渲染&#xff0c;真實感建模一直是計算機視覺和圖形學的核心目標。 在傳統方法中&#xff0c;我們往往依賴&#xff1a; 多視角立體&#xff08;MVS&#xff09;點云重建 網格擬合顯式建模&#xff08;如多邊形、體素、TSDF&#xff0…

ASP.NET MVC? 入門指南三

16. 安全性 16.1 身份驗證和授權 身份驗證&#xff1a;確認用戶的身份。ASP.NET MVC 支持多種身份驗證方式&#xff0c;如表單身份驗證、Windows 身份驗證和 OAuth 等。 表單身份驗證&#xff1a;用戶通過輸入用戶名和密碼登錄&#xff0c;服務器驗證后頒發一個身份驗證票證&…

佳博票據和標簽打印:Web網頁端與打印機通信 | iOS

文章目錄 引言I Web網頁端與打印機通信webSDK(包含示例頁)打印測試II iOS與佳博打印機通信引言 佳博工具下載ESC是票據打印指令,TSC是標簽打印指令 工業打印機:佳博GP-H430F工業機標簽條碼打印機物流快遞電子面單條碼機碳帶機 應用場景:打印商品價格標簽、打印交易小票 I…

c語言初識

學c注意事項 我寫了很多服務器的代碼&#xff0c;我怕有些人看不懂所以就寫了這篇入門篇。 學習c語言要多動手&#xff0c;多練習&#xff0c;其實語法就幾個,你了解了就會寫出自己想要的代碼&#xff0c;你不要怕不會寫不出程序&#xff0c;因為大部分代碼都有人寫好&#xf…

請求參數、路徑參數、查詢參數、Spring MVC/FeignClient請求相關注解梳理

目錄 1 請求分類1.1 URL參數--查詢參數1.2 URL參數--路徑參數 2 請求相關注解2.1 RequestParam--查詢參數2.2 PathVariable--路徑參數2.3 RequestBody2.4 Param & RequestLine2.5 SpringMVC請求參數注解用在FeignClient里 使用SpringMVC處理http請求或使用FeignClient進行請…

智能指針之設計模式3

這次我們看一下智能指針是如何使用策略模式來釋放資源的&#xff0c;同時又是如何擴展功能&#xff0c;管理更多的資源對象類型的。 3、策略模式 策略模式作為一種軟件設計模式&#xff0c;指對象有某個行為&#xff0c;但是在不同的應用場景中&#xff0c;該行為有不同的實現…

華為盤古OS深度評測:構建AI自進化系統的實踐密碼

華為盤古OS通過分布式AI內核與自適應學習框架的深度耦合&#xff0c;重新定義操作系統級智能能力。實測顯示其AI任務調度效率較傳統系統提升17倍&#xff0c;本文從智能體編排、持續學習機制、端云協同架構三個維度&#xff0c;解析如何基于DevKit 3.0打造具備認知進化能力的下…

精益數據分析(28/126):解讀商業模式拼圖與關鍵指標

精益數據分析&#xff08;28/126&#xff09;&#xff1a;解讀商業模式拼圖與關鍵指標 在創業和數據分析的探索旅程中&#xff0c;每一次深入研究都可能帶來新的啟發和突破。今天&#xff0c;我們依舊帶著共同進步的初心&#xff0c;深入解讀《精益數據分析》中關于商業模式的…

GitLab Runner配置并行執行多個任務

檢查并修改方法&#xff1a; 打開 Runner 的配置文件&#xff08;通常位于 /etc/gitlab-runner/config.toml 或 ~/.gitlab-runner/config.toml&#xff09;。 確保 concurrent 值大于 1&#xff0c;例如&#xff1a; concurrent 4 # 允許最多 4 個任務同時運行重啟 Runner…

開發首個Spring Boot應用

&#x1f4cb; 前置條件 &#x1f3af; 在開始之前&#xff0c;請打開終端并運行以下命令以確保已安裝正確版本的 Java&#xff1a; $ java -version openjdk version "17.0.4.1" 2022-08-12 LTS OpenJDK Runtime Environment (build 17.0.4.11-LTS) OpenJDK 64-Bi…

【信息系統項目管理師】高分論文:論質量管理和進度管理(智慧旅游平臺建設項目)

更多內容請見: 備考信息系統項目管理師-專欄介紹和目錄 文章目錄 論文1、規劃質量管理2、質量保證3、質量控制論文 2019年3月,我作為項目經理,參加了某市智慧旅游平臺建設項目,負責項目的全面管理, 該項目以打造一流的國內外生態旅游城市為目標,旨在大數據云平臺建設的基…

DAM-3B,英偉達推出的多模態大語言模型

DAM-3B是什么 DAM-3B&#xff08;Describe Anything 3B&#xff09;是英偉達推出的一款多模態大語言模型&#xff0c;專門用于為圖像和視頻中的特定區域生成詳細描述。用戶可以通過點、邊界框、涂鴉或掩碼等方式來標識目標區域&#xff0c;從而得到精準且符合上下文的文本描述…

如何判斷你的PyTorch是GPU版還是CPU版?

如何判斷你的PyTorch是GPU版還是CPU版&#xff1f; PyTorch作為當前最流行的深度學習框架之一&#xff0c;支持在CPU和GPU(NVIDIA CUDA)上運行。對于深度學習開發者來說&#xff0c;正確識別PyTorch版本至關重要&#xff0c;因為GPU版本可以帶來10-100倍的性能提升。本文將全面…

Gin框架

Gin 快速入門 go get -u github.com/gin-gonic/gin package main import gin "github.com/gin-gonic/gin"func main() {engine : gin.Default()engine.GET("/", func(c *gin.Context) {c.String(200, "Hello Gin")})engine.Run(":8888&q…