vue元件中的 sync修飾符實現父子元件雙向通訊

2021-08-29 02:18:18 字數 937 閱讀 6160

我們知道,在vue的元件通訊props中,一般情況下,資料都是單向的,即父元件資料的更改會下傳到子元件(用了.once除外),子元件對資料無法做出更改(當傳遞的資料是引用資料型別時,可以更改父元件資料,比如,陣列的破壞性方法,push等)。在vue1.x時,提供.sync作為雙向傳遞的關鍵字,但是2.0刪除了該修飾符,但是!!2.3+又恢復了使用,採用的事件機制。下面我就簡述一下怎麼使用。

使用物件:子元件(元件名addicon)&&父元件或者根例項。

首先看子元件:

1.props宣告

首先要在子元件選項資料內宣告要傳遞的資料:

props: ['message', 'discount', 'keys', 'indexs', 'fooditem', 'cart', 'cartarray'],//我們只拿cart做實驗

同時給子元件乙個自己的屬性:                     

data: function () 

},

2.html中繫結

在html屬性內動態繫結

3.事件發布

子元件資料的改變必然有事件觸發,**需要改變cart,就在**發布事件:

methods:

}

再看父元件

父元件需要繫結事件監聽:

如此一來,便實現了雙向繫結,子元件carts屬性接受父元件或根例項的初始資料,父元件的變動會傳遞給子元件,而子元件的carts改變時,通過事件機制,修改父元件的cart。完成了子元件carts和父元件cart的雙向對映。

vue元件中的 sync修飾符使用

sync是vue中用於實現簡單的 雙向繫結 的語法糖,在平時的開發中是經常使用的。在vue的元件通訊props中,一般情況下,資料都是單向的,子元件不會更改父元件的值,那麼vue提供.sync作為雙向傳遞的關鍵字,實現了父元件的變動會傳遞給子元件,而子元件的show改變時,通過事件機制,修改父元件的...

關於vue修飾符 sync

vue是單項資料流,所以要對他進行雙向資料繫結的時候需要用到.sync修飾符,最常用的是visible.sync 在子元件裡寫 this.emit update visible visible 使用update my prop name 的模式觸發事件 父元件裡 isvisible update v...

modal元件的 sync修飾符

之前工作中在自定義元件時有用到modal元件,官方文件裡都會在modal裡寫 visible.sync visible on close close sync修飾符 當值更新時,會顯示觸發更新事件 而子元件接受父元件傳值時,不能對其直接進行改變 因此,自定義元件裡要把這個修飾符去掉,不然關閉moda...