Vue:.sync 修飾符:對 props 進行“雙向綁定”

標簽: Vue


問題:

在 Vue 文檔中可以知道,子組件想要改變父組件的數(shù)據(jù),必須在子組件使用 this.$emit('事件名', data) 來向父組件傳遞數(shù)據(jù),父組件在組件標簽上使用 @時件名.native='onSubmit' 來觸發(fā)事件,獲取子組件傳遞過來的值。

但是,在 element-ui 使用過程中,發(fā)現(xiàn) el-dialog 組件,不用在組件標簽上創(chuàng)建自定義事件,就可以改變父組件值。

簡而言之: 子組件可以直接改變父組件傳遞過來的 prop 值。


父組件:
綁定一個 title 屬性,并添加 .sync 修飾符

<text-document v-bind:title.sync="doc.title"></text-document>

子組件:
觸發(fā) emit 方法,必須加上 update: 關(guān)鍵詞,可以將 $emit 傳遞給父組件的值,替換成對應(yīng)的綁定值。
本例中,子組件newTitle 賦值給父組件title

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

注意事項:

.sync 修飾符不允許傳入表達式,比如:
<text-document v-bind:title.sync="doc.title + 'hello'"></text-document>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容