vue的.sync 修飾符

不少時候,咱們會對 prop (父子組件傳遞數據的屬性) 進行「雙向綁定」vue

在vue 1.x 中的 .sync 修飾符所提供的功能。當一個子組件改變了一個帶 .sync 的prop的值時,這個變化也會同步到父組件中所綁定的值。this

這很方便,但也會致使問題,由於它破壞了單向數據流。(數據自上而下流,事件自下而上走)debug

因爲子組件改變 prop 的代碼和普通的狀體改動代碼毫無區別,因此當你光看子組件的代碼時,你徹底不知道它合適悄悄地改變了父組件的狀態。雙向綁定

這在 debug 複雜結構的應用時會帶來很高的維護成本。因而咱們在 vue 2.0 中移除了 .sync 。事件

咱們須要作的只是  讓子組件改變父組件狀態的代碼更容易被區分。同步

因而從 vue 2.3.0 開始,咱們從新引入了 .sync 修飾符,可是此次它只是做爲一個編譯時的語法糖存在。他會被自動擴展爲一個  自動更新父組件屬性的 v-on 監聽器。it

<child  :foo.sync=」msg」></child>  就會被擴展爲:  <child  :foo=」bar」  @update:foo=」val => bar = val」>   (@是v-on的簡寫)編譯

當子組件須要更新 foo 的值的時候,他須要顯示的觸發一個更新事件:   this.$emit( 「update:foo」, newValue );擴展

相關文章
相關標籤/搜索