一、父級(jí)向子級(jí)傳遞數(shù)據(jù):
在父組件中我們以下面的格式將數(shù)據(jù)傳遞給子組件(為了不混淆數(shù)據(jù)蘸泻,我們將傳遞的數(shù)據(jù)名稱和實(shí)際數(shù)據(jù)名設(shè)為一致的):
在子組件中,我們這樣來(lái)獲取傳過(guò)來(lái)的參數(shù):
這只是傳遞一個(gè)參數(shù)丐谋,如果我們傳遞多個(gè)參數(shù)盹愚,在使用的時(shí)候,會(huì)出現(xiàn)一些小問(wèn)題痕惋,需要注意一下:
在props 中傳入多個(gè)數(shù)據(jù)是区宇,如果在父組件的模板類添加其他元素或者字符就會(huì)有:(傳遞過(guò)來(lái)的數(shù)據(jù)為:msg1/msg2/msg3)
1、在最前面加入:每個(gè)子組件渲染出來(lái)都會(huì)在其前面加上值戳,例如:
父級(jí)上:abc{{msg1}}{{msg2}}{{msg3}} ==》頁(yè)面數(shù)據(jù)顯示:abc msg1數(shù)據(jù) abc msg2數(shù)據(jù) abc msg3數(shù)據(jù)
2议谷、在最后面加入:每個(gè)子組件渲染出來(lái)都會(huì)在其后面加上,例如:
父級(jí)上:{{msg1}}{{msg2}}{{msg3}}abc ==》頁(yè)面數(shù)據(jù)顯示:msg1數(shù)據(jù) abc msg2數(shù)據(jù) abc msg3 數(shù)據(jù)abc
3堕虹、在中間加入:他前面子組件后面加上卧晓,后面的子組件后面加上,例如:
父級(jí)上:{{msg1}abc{{msg2}}{{msg3}} ==》頁(yè)面數(shù)據(jù)顯示:msg1數(shù)據(jù) abc abc msg2數(shù)據(jù) abc msg3數(shù)據(jù)
二赴捞、子級(jí)向父級(jí)傳遞數(shù)據(jù)
曾以為只有父級(jí)可以給子級(jí)傳遞數(shù)據(jù)禀崖,沒(méi)想到子級(jí)也可以給父級(jí)傳遞,二者的傳遞方式是完全不同的螟炫,在子組件上:
自己定義一個(gè)listenToChildEvent事件波附,一會(huì)在父組件的子標(biāo)簽上監(jiān)聽(tīng)該事件。因此昼钻,在父組件上就有:
添加一個(gè)響應(yīng)listenToChildEvent事件的處理方法掸屡,即獲取數(shù)據(jù),下方的data就是子組件傳回的數(shù)據(jù):
這樣一來(lái)然评,數(shù)據(jù)就傳遞來(lái)了仅财,但是需要注意一下,在子組件中我們需要以某種方式來(lái)觸發(fā)我們自定義的listenToChildEvent事件碗淌,可以是click盏求、mouseout抖锥、mouseover、onclick等等碎罚。