日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

v-for 获取数组key value_Vue之路 | 05von、vif、vfor

發布時間:2025/3/15 vue 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 v-for 获取数组key value_Vue之路 | 05von、vif、vfor 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
點擊左上方“熊吱”關注我們吧!

1

事件監聽

????在開發中,需要監聽用戶發生的事件,如點擊、拖拽、鍵盤操作等,在Vue中,使用v-on指令綁定事件監聽器。

v-on的語法糖為:@

  • v-on基本操作

????在下面代碼中,使用了v-on語法(使用的是語法糖@)綁定了一個點擊事件,事件指向了一個methods中定義的函數:

<div id="app"> <h1>{{message}}h1> <h2>{{counter}}h2> <button @click='inc'>+button> <button @click='sub'>-button> div> <script> const app = new Vue({ el:'#app', data:{ message:'歡迎光臨!請選擇您要購買的數量', counter:0 }, methods:{ inc(){ this.counter++ }, sub(){ this.counter-- } } })script>
  • v-on參數

????有下列三種情況:

情況1:方法不需要傳參

情況2:若方法本省需要。一個參數,沒有傳入參數,只寫了一個(),形參為Undifiened;如果省略了小括號,vue會將默認的瀏覽器產生的event事件對象作為參數傳入到方法。

情況3:需要event對象同時也需要其他參數時,需要使用$event 手動獲取瀏覽器參數的event對象。

代碼示例如下:

<div id="app"> <button @click='btn1click'>按鈕1button> <button @click='btn1click()'>按鈕1button><br> <button @click='btn2click(123)'>按鈕2button> <button @click='btn2click()'>按鈕2button> <button @click='btn2click'>按鈕2button><br> <button @click='btn3click(123,$event)'>按鈕3button> div> <script> const app = new Vue({ el:'#app', data:{ message:'hello' }, methods:{ btn1click(){ console.log('點擊了按鈕1') }, btn2click(value){ console.log('點擊了按鈕2,參數為:'+ value) }, btn3click(value,event){ console.log('點擊了按鈕3,參數為'+value) console.log(event) } } })script>

????依次點擊按鈕的效果輸出:

  • v-on修飾符

????某些情況下拿到event事件可以通過修飾符進行一些事件的處理,Vue中常用的一些修飾符如下:

(1).stop -調用event.stopPropagation()

????使用stop修飾符可以停止事件的冒泡,比如在下列代碼中,沒有使用stop修飾符時,點擊按鈕時會觸發btnclick以及divclick,使用后,就只觸發當前的btnclick:

<div id="app"> <div @click='divclick'> 一個div <button @click.stop='btnclick'>按鈕1button> div> div>

(2).prevent -調用event.preventDefault()

????使用prevent修飾符可以阻止事件的默認行為,比如在一個表單的提交按鈕上,可以通過添加prevent阻止默認的跳轉動作:

<form action="www.baidu.com"> <input type="submit" value="提交" @click.prevent='sbmclick'> form> div>

(3).{keyCode | keyAlias} -只當事件是從特定鍵觸發時才觸發回調

????比如通過如下方法,監聽是否敲下回車鍵:

<input @keyup.enter='onEnter'>

(4)除此之外還有一些修飾符:

.native -監聽組件根元素的原生事件

.once -只觸發一次回調

2

條件判斷

  • v-if、v-else-if、e-else

????在vue中也支持使用v-if、v-else-if、v-else進行條件判斷:

<div id="app"> <h2 v-if='score>=90'>優秀h2> <h2 v-else-if='score>=80'>良好h2> <h2 v-else-if='score>=60'>及格h2> <h2 v-else='score>0'>不及格h2> div>

????一個登錄切換框的實現:

<div id="app"> <span v-if='isUser'> <label for="username">{{message}}label> <input type="text" id="username" placeholder="請輸入用戶賬號" key='username'> span> <span v-else> <label for='email'>{{email}}label> <input type="text" id="email" placeholder="請輸入用戶郵箱" key='email'> span> <button @click='isUser = !isUser'>切換類型button> div> <script> const app = new Vue({ el:'#app', data:{ message:'用戶賬號', email:'用戶郵箱', isUser:true } })script>

其中輸入框中的key值是否相同決定是否復用組件。

  • v-show

兩者的區別:

v-if:當條件為false時,dom中不會存在包含v-if指令的元素。

v-show:當條件為false時,v-show只是在元素中加了一個行內樣式display:none

在開發中,切片很頻繁時,使用v-show

代碼示例:

<div id="app"> <h2 v-if='isShow'>{{message}}h2> <h2 v-show='isShow'>{{message}}h2>div> <script> const app = new Vue({ el:'#app', data:{ message:'hello', isShow:true } })script>

3

循環語句

????在實例中定義一個數組與一個對象:

<script> const app = new Vue({ el:'#app', data:{ arr:['XuanYi','MeiQi','ChaoYue'], obj:{ name: '熊吱', age:20, egname:'BearMouth' } } })script>
  • 遍歷數組

????可通過以下方法遍歷數組:

<ul> <li v-for="itm in arr">{{itm}}li> ul> <ul> <li v-for="(itm,index) in arr">{{itm}}--{{index}}li> ul>

????輸出效果:

  • 遍歷對象

????可通過以下方法遍歷對象:

<ul> <li v-for='value in obj'>{{value}}li> ul> <ul> <li v-for='(value,key) in obj'>{{value}}--{{key}}li> ul> <ul> <li v-for='(value,key,index) in obj'>{{value}}--{{key}}--{{index}}li> ul>

????輸出效果:

  • key綁定

????為了高效的更新虛擬DOM:

????官方推薦在使用v-for時給對應的元素或組件綁定一個唯一的:key屬性

<ul> <li v-for="itm in arr" :key='itm'>{{itm}}li> ul>

????這個和Vue的虛擬DOM的Diff算法有關,使用key給每個節點做一個唯一標識,Diff算法就可以正確識別此節點,就能找到正確的位置插入新的節點。

  • 響應式的數組方法

1. push() 在數組后添加元素2. pop() 刪除數組最后一個元素3. shift() 在刪除數組中的第一個元素4. unshift() 在數組最前面添加元素5. splice() - 刪除(開始元素,刪除元素個數) - 插入(開始元素,0,插入元素) - 替換元素(開始元素,替換元素個數,替換元素)6. sort() 排序元素7. reverse() 反轉元素

????

????以上列舉了vue中響應式的數組方法(頁面會直接改變),如果需要修改數組的元素,直接通過索引值修改是非響應式的,vue中也提供了一個set函數來修改數組元素:

Vue.set(要修改的對象,索引值,修改后的值)ENDVue之路系列文章:Vue之路 | 01-Vue安裝與初體驗Vue之路 | 02-VSCODE添加Vue模板Vue之路 | 03-插值操作與V-bindVue之路 | 04-計算屬性computed

微信:熊吱

掃碼關注我們

互聯網知識交流平臺

你的每個贊和在看,我都喜歡!

總結

以上是生活随笔為你收集整理的v-for 获取数组key value_Vue之路 | 05von、vif、vfor的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。