首頁 > web前端 > Vue.js > 主體

深入聊聊Vue中的一些常用指令

青灯夜游
發布: 2022-01-11 19:29:20
轉載
1945 人瀏覽過

這篇文章帶大家深入聊聊Vue中的一些常用指令,希望對大家有幫助。

深入聊聊Vue中的一些常用指令

首先來聊聊Vue框架,Vue是一套用於建立使用者介面的漸進式的JavaScript框架,對於初學者來說是非常友好的, Vue的虛擬Dom , 數據雙向綁定, 都使開發者可以快速上手, 而我個人感覺, Vue的指令使用起來非常的方便, 今天的這篇文章們就來聊聊常用的Vue指令吧!

v-for

在初學任何一門語言的時候我們或多或少都接觸過for

for (let i = 0; i < arr.length; i++) {

}
登入後複製

Vue 的v-for跟我們js裡面的最根本的概念還是一樣的就是兩個字循環

v-for後面括號裡面itemindex就相當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

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

提到v-if 也就聊到了  v-else  在v-if條件不成立的時候就會直接走到v-else上去,記住v-else後面不能跟等號, 元件之前必須跟v-if

<div v-if="false"> 你看不到我啊  </div> //因为我条件不成立

<div v-else> 你能看到我 </div>
登入後複製

v-else-if

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

#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(&#39;this.count:&#39;+this.count); 
            } 
        }
    }
</script>
登入後複製

v-text

v- text 以文字的方式來插入資料, 是用於操作純文字, 他是會替代本身元素上面的內容,如果資料更新隨之試圖也會發生改變

<p v-text="data"> 你好你好 </p>
登入後複製

v-html

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就是綁定事件, 可以在一個標籤綁定多個事件, v-on:第一個是事件, 事件後面跟著一個自定義方法

 <button v-on:mouseenter=&#39;onenter&#39; @click=&#39;leave&#39;>click me</button>
登入後複製

v-bind

v-bind 也有一个简便的写法就是" : " 简单来说v-on就是用于绑定数据和元素属性 , 最常用的方法就是用于动态绑定class

 <ul  :class="classObject"></ul>
登入後複製

v-model

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.js教程

以上是深入聊聊Vue中的一些常用指令的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:juejin.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板