父組件傳值,子組件監聽,明明很簡單的一個事情,硬是卡了許久(畢竟不是專業搞前端的,仍是吃虧在學識淺陋)。也和本身鑽牛角尖有關,想本身解決問題。前端
早期我寫過一篇vue組件傳值的文章,傳值方式是這樣的:vue
官網的簡單實例也是這樣的:調試
用中括號包含參數便可,至於參數是什麼類型,你傳值的時候給就好了,用的時候直接用。由於JS是弱類型語言,這塊能夠不指定參數類型。對象
固然,也能夠指定,今天遇到的問題就在於這個指定了參數類型。先看官網對於參數類型的描述:blog
而後是作法:事件
下午的卡殼就在這個type上, 以前寫js習慣了弱類型var的運用,不太習慣去指定這裏的type,致使傳遞了一個對象沒有被接收。無語了~開發
知道爲何之後事情作起來就容易不少了:im
不糾結類型, 直接傳過來就完事,怎麼用我確定知道,畢竟是本身寫的參數。這樣的好處是在配合watch事件使用時賊方便,哪怕你給子頁面賦值報錯了,也沒事,改正就行了,重點是什麼,是這樣作watch事件不會由於類型錯誤而沒法觸發!!這個坑太深.... 正常來說參數只要傳了,變化了,watch事件時能夠監聽到的,可是我這裏類型給錯了直接致使watch事件不觸發,頁面也不報錯,得硬看代碼逐行調試才知道爲何。因此說有時候報錯是好的, 錯誤信息能幫助你定位問題,而最可怕的問題反而是什麼錯也沒有,功能出不來,這真的使人抓狂。項目
固然了, 參數是否指定類型以及是否給予默認值,這個得由開發者來決定,有時候還要看項目具體狀況,我這裏只是吐槽一下剛剛踩到的坑。網上也有其餘的一些諸如watch事件不觸發的問題,但我想估計沒我這個坑, 可能有的人也遇到相似的問題吧。db