首先來聊聊Vue框架,Vue是一套用於構建使用者介面的漸進式的JavaScript框架,對於初學者來說是非常友好的 , Vue的虛擬Dom , 資料雙向繫結 , 都使開發者可以快速上手 , 而我個人感覺 , Vue的指令使用起來非常的方便 , 今天的這篇文章們就來聊聊常用的Vue指令吧!
在初學任何一門語言的時候我們或多或少都接觸過 for
for (let i = 0; i < arr.length; i++) { }
Vue 的 v-for跟我們js裡面的最根本的概念還是一樣的就是兩個字 迴圈
v-for後面括號裡面 item 和 index 就相當for迴圈裡面的 arr[i] 和 i 也就是對應的每一個 元素 和 下標 , 後面的 in arr 這個 arr 就是我們想要回圈的陣列 最後一個 :key="item.id "是v-for的核心 如果沒有這個:key 我們的Vue就會報錯 , 那麼為什麼會有Key , Key要給的引數是什麼呢? Key的引數是唯一的 , 也就是我們不管迴圈幾次 , 每次迴圈的key不能有重複 , 這裡我們不推薦用index來當你的Key , 說到底,key的作用就是更新元件時判斷兩個節點是否相同。相同就複用,不相同就刪除舊的建立新的。在渲染簡單的無狀態元件時,如果不新增key元件預設都是就地複用,不會刪除新增節點,只是改變列表項中的文字值,要知道節點操作是十分耗費效能的。而新增了key之後,當對比內容不一致時,就會認為是兩個節點,會先刪除掉舊節點,然後新增新節點。
<li v-for="(item,index) in arr" :key="item.id"> {{ item.name }} </li>
v-show 是根據布林值來進行渲染 , true 就頁面顯示 , false 就不在頁面顯示 ,他的原理其實是控制css樣式來使得我們對應的元件或者盒子顯示 ,隱藏dispaly:"none"
,顯示dispaly:"block"
<div v-show="true"> 我 dispaly:"block" 拉 </div> <div v-show="false"> 我 dispaly:"none" 拉 </div> //假裝我隱藏了 你看不見我
v-if 也是根據布林值來進行渲染 ,跟v-show也是差不多, true 就頁面顯示 , false 就不在頁面顯示 但是v-if是惰性的 如果初始值是false元件就不會渲染出來 , 知道第一次他的引數變成true 他才會渲染,但他的條件又變成false的時候 , 子元件適當就會唄地被銷燬和重建 , 如果需要非常頻繁地切換,則使用 v-show 較好;如果在執行時條件很少改變,則使用 v-if 較好。
<div v-if="true"> </div> <div v-if="false"> 我被銷燬了嗚嗚嗚 </div> //假裝我隱藏了 你看不見我
提到 v-if 也就聊到了 v-else 在 v-if條件不成立的時候就會直接走到v-else上去 ,記住v-else後面不能跟等號 , 元件之前必須要跟v-if
<div v-if="false"> 你看不到我啊 </div> //因為我條件不成立 <div v-else> 你能看到我 </div>
提到 v-if 和 v-else 也就也會想到 v-else-if 在 v-if條件不成立的時候就會直接走到v-else-if上去看條件判斷成立不成立 , 條件成立就渲染元件 , 元件之前必須要跟v-if
<p v-if="score>=90">厲害</p> <p v-else-if="score>=60">差不多</p>
v-once 它的作用就是定義它的元素或元件只會渲染一次 , 當第一次渲染之後也不會隨著資料的更新而來進行重新渲染 , 就相當於一個靜態內容
<template> <div v-once>{{count}}</div> <button v-on:click="addCount"> 你點我count也不加 </button> </template> <script> export default { data() { return { count: 10 } }, methods: { addCount: function () { this.count += 1; console.log('this.count:'+this.count); } } } </script>
v-text 以文字的方式來插入資料 , 是用於操作純文字 , 他是會替代本身元素上面的內容,如果資料更新隨之試圖也會發生改變
<p v-text="data"> 你好你好 </p>
v-html v-html用於輸出html,它與v-text區別在於v-text輸出的是純文字,瀏覽器不會對其再進行html解析,但v-html會將其當html標籤解析後輸出
<p v-html="data">厲害</p> 頁面顯示:<p> <h1>你好啊<h1> </p> // 外層還是會有p標籤來包裹 data:<h1>你好啊<h1>
v-on 有一個簡便的寫法就是" @ " 簡單來說v-on就是繫結事件 , 可以在一個標籤繫結多個事件 , v-on:第一個是事件 , 事件後面跟著一個自定義方法
<button v-on:mouseenter='onenter' @click='leave'>click me</button>
v-bind 也有一個簡便的寫法就是" : " 簡單來說v-on就是用於繫結資料和元素屬性 , 最常用的方法就是用於動態繫結class
<ul :class="classObject"></ul>
v-model是Vue雙向繫結指令 , 它可以在頁面是輸入的狀態同時改變繫結data屬性 , 也會在data屬性發生改變的時候也更新頁面的狀態 , 我們經常在input上面能發現他的存在 , 他的本質上其實是繫結了<input :value="test" @input="test = $event.target.value">
, v-model後面可以跟修飾符比如 .lazy 、.trim 和 .number 這些修飾符一起使用
.lazy 將input的實時更新改為一個change事件 , 只有失焦的時候input才會觸發事件
.trim 去除字串首尾的空格
.number 將資料轉化為值型別
<input v-model="test"> <input v-model.lazy="msg" > <input v-model.trim="msg"> <input v-model.number="age" type="number">
【相關推薦:】
以上就是深入聊聊Vue中的一些常用指令的詳細內容,更多請關注TW511.COM其它相關文章!