vue sync修飾符

我們先看下官方文檔 vue 修飾符sync

vue 在 2.0 發佈之後的實際應用中,我們發現 .sync
還是有其適用之處,比如在開發可複用的組件庫時。我們需要做的只是讓子組件改變父組件狀態的代碼更容易被區分。從 2.3.0 起我們重新引入了
.sync 修飾符,但是這次它只是作爲一個編譯時的語法糖存在。它會被擴展爲一個自動更新父組件屬性的 v-on 監聽器。

言簡意賅的說就是因爲子組件不能直接去修改父組件傳過來的值!
所以 .sync 相當於v-on 監聽器的縮寫

示例代碼如下:

<SelectionBox :content.sync = "paymentMethod"></SelectionBox>

會被擴展爲:

<SelectionBox  @update:content => renewal
			   :content = "paymentMethod">
</SelectionBox>

當子組件需要更新 foo 的值時,它需要顯式地觸發一個更新事件:

this.$emit("update:content",item)

個人總結:

實際上sync可以就是一個“ 語法糖 ”,只是會讓語法代碼書寫變得更加精簡和便捷。

vue 修飾符sync的功能是:

當一個子組件改變了一個 prop 的值時,這個變化也會同步到父組件中所綁定。如果我們不用 .sync ,我們想做上面的那個彈窗功能,我們也可以props傳初始值,然後事件監聽,實現起來也不算複雜。這裏用sync實現,只是給大家提供一個思路,讓其明白他的實現原理,可能有其它複雜的功能適用 sync

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章