91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue中sync修飾符的示例分析

發布時間:2021-05-17 09:21:13 來源:億速云 閱讀:116 作者:小新 欄目:開發技術

這篇文章主要介紹Vue中sync修飾符的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

1 、指令

指令即 Directive,從字面意思理解就是我告訴你要做什么,就是發送了一個指令,然后由接收指令的人去做就好了。在 Vue 中的指令有個統一好認的格式,就是以 v- 開頭的就是指令,如:

<div v-text="x"> </div> //v-text指定標簽文本指令
<div v-on:click="add"> <div> //v-on事件綁定指令

但并不是所有的指令都以 v- 開頭,對于一些簡寫,也是指令,如

<img :src="x"> </img> //v-bind:src 的簡寫
<button @click="add"> </button> //v-on:click 的簡寫

2 、修飾符

修飾符是與指令中的事件處理指令 v-on 息息相關的一個語法糖,所謂語法糖就是很 sweet,簡單好用,在編程界就是能幫你做好的都幫你做了,只剩最簡單的事留給你做。

在事件處理程序中,有一些非常常見的需求,例如 event.preventDefault() 阻止默認事件和 event.stopPropagation()阻止事件冒泡等等。因此 Vue 就把這些事件處理過程中常見的需求幫我們處理好了,在我們需要時告訴 Vue 一聲,它就會自動幫我們阻止默認事件、阻止事件冒泡等。那么我們告訴 Vue 的途徑就是 Vue 提供給我們的修飾符,修飾符是由點開頭的指令后綴來表示的

以阻止 <a> 標簽的點擊默認刷新頁面事件的 preventDefault 方法示例如下:

普通做法

<a href="" v-on:click=" rel="external nofollow" pe($event)">Vue點擊鏈接</a> //vue中訪問原始的DOM事件,可以用特殊變量 $event 把它傳入方法,在原始 HTML 中是 event
// ... 
methods: {
    pe(e){
        e.preventDefault()
    }
}

使用修飾符

<a v-on:click.prevent>Vue點擊鏈接</a> //prevent修飾符就等同于上述的 e.preventDefault()

由上述的小例可以看出,修飾符是不是個語法糖,幫我們把常用的需求提前寫好了,用的時候說一聲就行。當有事件處理程序時直接在后面繼續寫即可,如下:

<a href="" v-on:click.prevent=" rel="external nofollow" pp">Vue點擊鏈接</a>
// ... 
methods: {
    pp(){
        console.log('不跳轉頁面執行事件')
    }
}

修飾符是有順序地執行的,如上述的 v-on:click.prevent="pp",意思就是在點擊時,先執行修飾符 prevent 的阻止默認事件,然后再執行后面的 pp 事件處理函數。

修飾符幾乎是和事件 event 的相關處理函數一一對應的,根據事件的不同,對應不同事件的修飾符,如下所示分為幾大類:

Vue中sync修飾符的示例分析

修飾符的來源和含義就是上述所述,至于具體有哪些,在實際用到時可去官網查找所需,有兩個最最常用的需要記住,即 @click.stop 是阻止事件冒泡,@click.prevent 是阻止默認事件,@keypress.enter 是按鍵為回車事件。

3、 .sync 修飾符

.sync 修飾符相對來說比較特殊,因為其不是事件 event 原有的事件處理相關函數的演變,而是 Vue 自己定義的一個修飾符,如上述的修飾符分類中也將 .sync 分類為自定義事件的修飾符,那么這個自定義事件到底是什么事件呢?

這個事件對應的是 eventBus 事件,eventBus 事件是 MVC 中的一個模式,簡單來說就是發布和訂閱的過程,就是說有兩方,甲方負責始終監聽某個事件,乙方負責在需要的時候觸發這個事件,甲方在監聽到事件被觸發時就執行某些操作。甲方就是訂閱,乙方就是發布,雙方就是發布和訂閱模式。

那么在 Vue 中在什么時候會需要用到這種情況呢?

就是在 Vue 的組件在接受外部數據 props 時,Vue 規定,子組件在通過 props 接受外部數據后只有使用該數據的權利,但沒有修改該屬性的權利。因為,如果子組件修改了外部傳來的數據,這樣一來子組件和使用其的父文件都可以改來改去,在父組件和子組件都沒有明顯的改動來源,到最后都不知道這個數據是誰改的了,數據就不好控制了。因此 Vue 就規定組件只能有權使用 props 的屬性,不得自己改變,那么若其想要改變,就必須通知該數據的真正擁有者改變,也就是使用該組件的父文件。

其使用的通知方式就是 eventBus 發布和訂閱模式。

不使用 .sync

子組件觸發事件,事件名格式必須是 update:myPropName ,用 $emit 函數觸發

this.$emit('update:title', newTitle) //newTitle就是你想要修改props數據修改后的值

父組件可以監聽那個事件并根據需要更新一個本地的數據屬性

<myconponent :title="Ptitle" @update:title="Ptitle = $event" ></myconponent>
//在父組件中監聽該事件,該事件觸發后傳遞的值以 $event 接收,$event === newTitle ,Ptitle是父組件的數據

或者是定義的接受函數的參數

<myconponent :title="Ptitle" @update:title="val => Ptitle = val" ></myconponent>
//這時接收的值作為函數的參數

使用 .sync

上述的過程在實際需求中很常用,因此 Vue 就將父組件的監聽定義成了一個傳值時的修飾符,為 .sync ,上述代碼使用 .sync 修飾符后為:

子組件(是一樣的)

this.$emit('update:title', newTitle)

父組件

<myconponent :title.sync="Ptitle"></myconponent> //等同于上面的傳值并監聽

是不是很 sweet 呢?

4 、總結

.sync 的用法規則

1.組件不能修改 props 外部數據

2.this.$emit 可以觸發事件,并傳參

3.$event 可以獲取 $emit 的參數

Vue的優點

Vue具體輕量級框架、簡單易學、雙向數據綁定、組件化、數據和結構的分離、虛擬DOM、運行速度快等優勢,Vue中頁面使用的是局部刷新,不用每次跳轉頁面都要請求所有數據和dom,可以大大提升訪問速度和用戶體驗。

以上是“Vue中sync修飾符的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德令哈市| 天等县| 绍兴市| 阳曲县| 正阳县| 政和县| 苍南县| 太仓市| 泰兴市| 屏山县| 遂川县| 历史| 巴南区| 苏尼特右旗| 湟源县| 卫辉市| 乌拉特前旗| 区。| 平乐县| 佛坪县| 新民市| 新绛县| 茶陵县| 岑溪市| 通城县| 得荣县| 乐昌市| 灵山县| 建宁县| 微山县| 桐乡市| 天气| 林周县| 新蔡县| 玉环县| 女性| 和田县| 石台县| 共和县| 天峨县| 屏东市|