vue所有的指令都是以 " v-" 開頭。 v-html:類似於 js中的innerHTML 。可以解析模板中的標簽。 v-text:類似於 js中的innerText。將模板中的數據以字元串的形式輸出。不會解析模板中的標簽。等價於 {{ }} :防止刷新時{{ }}出現在頁面上 v-show:通過 ...
vue所有的指令都是以 " v-" 開頭。
v-html:類似於 js中的innerHTML 。可以解析模板中的標簽。
v-text:類似於 js中的innerText。將模板中的數據以字元串的形式輸出。不會解析模板中的標簽。等價於 {{ }}
:防止刷新時{{ }}出現在頁面上
v-show:通過控制css
的display
來控制元素的實現和隱藏。如果是頻繁切換則推薦用此方法。節約性能。
v-if:當屬性值為true
時,則顯示當前的元素,為false
,那麼顯示v-false
的元素。如果是偶爾切換,甚至不切換,則建議使用這個。減緩首次加在壓力,提高性能。
v-else-if:配合著 v-if 使用,當條件不成立時,執行這步。
v-else
:當以上條件都不成立時,執行這一步。
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 </head> 7 <body> 8 <div id="app"> 9 <div v-if="mag<0">小於0</div> 10 <div v-else-if="mag<10">0-9</div> 11 <div v-else>大於10</div> 12 </div> 13 </body> 14 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> 15 <script> 16 var vm=new Vue({ 17 el:"#app", 18 data:{ 19 mag:15 20 }, 21 }) 22 </script> 23 </html>
v-once:只綁定一次,當數據再次發生變化,也不會導致頁面刷新,寫在不想刷新的標簽上。
v-bind:
單向數據綁定
1 <!--完整寫法--> 2 <a v-bind:href="url">1111</a> 3 <!--簡寫--> 4 <a :href="url">2222</a>
一般用於class的獲取
1 <ul class="box" v-bind:class="{‘textColor‘:isColor, ‘textSize‘:isSize}"> 2 <li>學習Vue</li> 3 <li>學習Node</li> 4 <li>學習React</li> 5 </ul>
1 var vm= new Vue({ 2 el:‘.box‘, 3 data:{ 4 isColor:true, 5 isSize:true 6 } 7 })
v-on: 綁定事件。
1 <!--完整寫法--> 2 <button v-on:click="doThis"></button> 3 <!--簡寫--> 4 <button @click="doThis"></button>
監聽DOM
事件,函數需要定義在methods
中,不能和data
中的內容重名,不能使用箭頭函數
- 如果在綁定時,
fn
不帶()
,那麼函數會預設接收一個事件對象e
,mouseEvent
,如果綁定時帶有小括弧,那麼預設接收事件對象, - 既需要事件對象,又需要參數,需要在綁定的小括弧中加一個$event,後面才是真正的實參
v=for:迴圈
迴圈數組
1 <!--html--> 2 <div v-for="item in arr">{{item}}</div>
1 var vm=new Vue({ 2 el:"#app", 3 data:{ 4 arr:[1,2,4,574,45,448] 5 }, 6 })
效果如下:item 代表每一項
迴圈字元串
1 <div v-for="item in str">{{item}}</div>
1 var vm=new Vue({ 2 el:"#app", 3 data:{ 4 str:"fdhsde" 5 }, 6 })
效果如下 : item 代表著每一個字元
迴圈對象
<div v-for="(item,key,index) in obj">{{item}}--{{key}}--{{index}}</div>
1 var vm=new Vue({ 2 el:"#app", 3 data:{ 4 obj:{ 5 name:"qi", 6 age:"22", 7 } 8 9 }, 10 })
效果如下: 第一個參數是 屬性值 ,第二個參數是 屬性名,第三個參數是索引。
迴圈數字
1 <div v-for="item in 6">{{item}}</div>
效果如下 :
v-cloak
:用於元素載入數據比較多時,vue
解析時間比較長,為了防止{{}}
出現,給該元素加上v-cloak
屬性,直到vue
中把DOM
數據插入到真實DOM
中時,讓當前的元素顯示;
1 <div class="#app" v-cloak> 2 <p>{{value.name}}</p> 3 </div>
1 [v-cloak] { 2 display: none; 3 }
但是有的時候會不起作用,可能的原因有二:
1、v-cloak的display屬性被層級更高的給覆蓋掉了,所以要提高層級
1 [v-cloak] { 2 display: none !important; 3 }
2、樣式放在了@import引入的css文件中
v-cloak的這個樣式放在@import 引入的css文件中不起作用,可以放在link引入的css文件里或者內聯樣式中
v-model:只用於表單元素忽略了value。checkbox selected,將數據綁定的視圖上,視圖修改會影響數據的變化(雙向數據綁定)
- 單選框中使用v-model :會將都綁定val的劃分成一組,只能選擇其中一個
- 在覆選框中,如果只有一個,v-model 會將值預設轉換成布爾類型的值
- 如果v-model 在覆選框中同時綁定一個值,那麼會把這幾個進行分組,把選中的值,同一放進數組中
- 如果多個input框同時綁定一個相同的v-model,通過是否在數組中進行選中或者不選擇,各自來控制自己的狀態
- 用於下拉框那麼select上v-model綁定的值:跟option中的value屬性有關 ,那麼如果沒有value屬性,那麼會取option標簽中的內容