場景:
在用vue開發的過程中我們經常會遇到父子組件共用同一變量的情況,那么在這種情況下,我們肯定會想直接 把變量傳過來用,因為是雙向綁定的所以子組件就會修改這個變量,這樣在vue中時會報錯的。
問題:
對於這種問題,我們就可以在父組件中用v-model或者是用一個屬性加上sync修飾符並在子組件使用$emit('input',v)或者$emit('x:update',v)來解決,但是這兩個東西到底有什么區別呢?
結論:
個人認為兩者只是語法上的區別,以此來實現兩個組件之間數據的雙向綁定,sync更加靈活一點,如果是v-model的話在子組件就只能用value來接這個參數了,而sync可隨意
延伸:
官方有哦說道:組件實例的作用域是獨立的,這意味着不能(也不該)在子組件的模板內引用父組件的數據,父組件的數據需要通多prop才能下發到子組件中。