眾所周知厂捞,Vue3中引入了一種新的語法來書寫代碼,那就是Compositon API(組合式API)
那么vue3為什么要添加組合式API队丝,它可以解決哪些問題靡馁?
在 Vue2中,隨著功能的增加机久,組件越來越復(fù)雜臭墨,維護起來也越來越難。而難以維護的根本原因是 Vue2 的Options API設(shè)計迫使開發(fā)者使用監(jiān)視膘盖、計算胧弛、方法來組織代碼,而不是實際的業(yè)務(wù)邏輯侠畔。使用傳統(tǒng)Options API中结缚,新增或者修改一個需求,就需要分別在data践图,methods掺冠,computed,watch里修改 码党,你要去找這個data在哪個對應(yīng)的methods中被修改過德崭,如果業(yè)務(wù)邏輯復(fù)雜你還需要通過搜索屬性名稱的方式來尋找,這很明顯不是一種好的開發(fā)方式揖盘。
另外 Vue2 缺乏一個簡單而低成本的機制來完成邏輯重用眉厨,雖然你可以 minxis 完全重用邏輯,但是當 mixin 更多的時候兽狭,就使得很難找到相應(yīng)的數(shù)據(jù)憾股,計算出來也許是從中 mixin 的方法,使得類型推斷變得困難箕慧。
因此Compositon API服球,主要是解決Options API帶來的問題。
首先是代碼組織颠焦。組合API開發(fā)者可以根據(jù)業(yè)務(wù)邏輯組織自己的代碼斩熊,把相關(guān)的數(shù)據(jù)、處理邏輯放到一起伐庭,這就是一種關(guān)注點的聚合粉渠,讓代碼更具可讀性和可擴展性分冈。也就是說,當下一個開發(fā)者接觸到這段不是自己寫的代碼霸株, 他可以更好地利用代碼的組織來反轉(zhuǎn)實際的業(yè)務(wù)邏輯雕沉,或者根據(jù)業(yè)務(wù)邏輯更好地理解代碼。
二是實現(xiàn)代碼的邏輯提取和重用去件。當我需要把某個功能添加到另一個項目時坡椒,我可以很方便地找到這個功能所有的相關(guān)代碼并復(fù)用。當然mixin邏輯提取和重用也可以實現(xiàn)箫攀,但就像我之前說的肠牲,多個mixin在作用于同一個組件時,很難看出mixin的屬性靴跛,來源不明確缀雳,另外,多個mixin的屬性存在變量命名沖突的風險梢睛。而 Composition API 恰恰解決了這兩個問題肥印。
通過幾個圖片可以很直觀的感受到這兩種語法思想上的區(qū)別和Compositon API帶來的好處
vue2的方式:
vue3的方式:
可以看出深碱,Compositon API帶來了閱讀和維護方面的巨大進步
參考文章:https://blog.csdn.net/qq_22182989/article/details/125781704