vue中,當(dāng)我們定義了一個組件compA,compA中需要一個外部函數(shù),那比較好的做法是通過props傳遞 還是 compA中emit('eventName'),然后引用compA的頁面這樣寫:<comp-a @eventName=""></comp-a>
哪種更合適呢?
我參考了elemnt-ui 的 table組件 http://element-cn.eleme.io/#/...,發(fā)現(xiàn)它以上兩種情況都有。比如sort-method,是以props的方式傳遞一個函數(shù)。當(dāng)然,更多的事件函數(shù)還是通過emit的方式,也不知道他們的考量標(biāo)準(zhǔn)是什么 ?
其他的樓上都說完了 我做個愚蠢的補(bǔ)充
其實有個決定性因素是 這個函數(shù)到底會在執(zhí)行途中需要哪個域的值
prop 從父傳到子
emit 從子傳到父
例如說子組件是一個保存按鈕 它需要一個功能是點擊保存后顯示加載中 并在保存完畢顯示回保存
那么 由于這個功能需要更改子組件自身的按鈕上的文字 所以 應(yīng)該由父組件prop下來一個save function 讓子組件能在使用時方便的更改自己的狀態(tài)
再例如 又是這個按鈕 它還需要實行一個功能 點擊后根據(jù)輸入框里的關(guān)鍵字進(jìn)行搜索 由于輸入框跟按鈕明顯是兩個組件 是父組件讓他們聯(lián)系在一起的 所以 這個點擊應(yīng)該是一個emit 讓子組件通知父組件 啊 我這里被點擊啦 然后父組件再根據(jù)輸入框內(nèi)容進(jìn)行搜索
謝邀。prop
和@eventName
使用的場景不同吧。。
prop
傳遞一個函數(shù)到子組件,是因為這個函數(shù)是需要在子組件中執(zhí)行,并且在父組件聲明的場景。比如你的table
排序,肯定是需要在子組件進(jìn)行處理的,而排序的方法需要你自己定義...因此prop
傳遞一個函數(shù)下去。@eventName
的場景,是在子組件觸發(fā)一個事件,在父組件執(zhí)行對應(yīng)的事件函數(shù),所以函數(shù)是在父組件執(zhí)行的。比如在子組件執(zhí)行完某些參數(shù)后讓父組件執(zhí)行回調(diào)函數(shù)...北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。