Vue----漸進式框架的理解

對「漸進式」這三個字的理解:Vue漸進式-先使用Vue的核心庫,再根據你的須要的功能再去逐漸增長加相應的插件。前端

如下理解出處:https://www.zhihu.com/question/51907207編程

在我看來,漸進式表明的含義是:主張最少。設計模式

每一個框架都不可避免的會有本身的一些特色,從而會對使用者有必定的要求,這些要求就是主張,主張有強有弱,他的強勢程度會影響在業務開發中的使用方式。緩存

好比Angular,他兩個版本都是強主張的,若是你用它,必須接受一下東西:架構

-必須使用它的模塊機制框架

-必須使用他的依賴注入函數式編程

-必須使用它的特殊形式定義組件(這一點每一個視圖框架都會,難以免)函數

因此Angular是帶有比較強的排他性的,若是你的應用不是從頭開始,而是要不斷考慮是否跟其餘東西繼承,這些主張會帶來一些困擾。組件化

好比React,他也有必定程度的主張,他的主張主要是函數式編程的理念,好比說,你須要知道什麼是反作用,什麼是純函數,如何隔離輔做用。他的侵入性看似沒有Angular那麼強,主要由於它是軟性入侵。spa

你固然能夠只用React的視圖層,但幾乎沒人這麼用,爲何呢,由於你用了它,就會以爲其餘東西很彆扭,因而你要引入Flux、Redux、Mobx之中的一個,因而你除了Redux,還要看saga,因而你要糾結業務開發過程當中每一個東西有沒有反作用,甚至你連這個均可能忍不了:

const getData = () => {
// 若是不存在,就在緩存中建立一個並返回
// 若是存在,就從緩存中拿
}

由於你要糾結他有外部依賴,一樣是不加參數調用,連續兩次的結果是不同的,因而不純,

爲何我一直不認同在後臺項目中使用React,緣由就在這裏,我反對的是整個業務應用的函數式傾向,不少人都是看到有不少好用的React組件,就會傾向於把他引入,而後,你知道怎麼把本身的業務映射到函數式的那套理念上嗎?

函數式編程無反作用,寫出來的代碼沒有bug,這是真理沒有錯,可是有兩個問題須要考慮:

1.JS自己,有太多特徵與函數式的主張不適配

2.業務系統裏面的實體關係,如何組織業務邏輯,幾十年來積累了無數的基於設計模式的場景經驗,有太多的東西能夠模仿,可是,沒有人給你總結那麼多如何把你的厚重業務映射到函數式理念的經驗,這個地方很考驗綜合水平的,真的每一個人都有能力去作這種映射嗎?

函數式編程無bug的根本就在於要把業務邏輯徹底都依照這套理念搞好,你看看本身公司作中後臺的員工們,他們熟悉的是什麼?是基於傳統oo設計模式的這套東西,他們認爲你拿着你麼你給的組件庫就知道了一切,可是可能還要被灌輸函數式編程的一整套東西,並且沒有人來告訴他們在業務場景下,如何規劃業務模型、組織代碼、還要要求快速開發,怎麼能快起來?

因此我心疼這新人,他們呀的只是組件庫,卻不得不把業務邏輯的撕開方式也做轉換,這個事情沒有一兩年的時間洗腦,根本洗不到開發業務的程度。

沒有好組件庫的時候,你們痛點在視圖層,有了基於React的組件化,把原先沒那麼痛的業務邏輯部分搞得也痛起來了,原先你們按照設計模式教的東西,照貓畫虎還能繼續開發了,學了一套新理念以後,都不知道怎麼寫代碼了,怎麼寫都懷疑本身不對,可怕。

 

我寧肯支持Angular也不支持React的緣由也就在此,Angular至少在業務邏輯這塊沒有軟主張,可以跟OO設計模式那套東西配合得很好。我面對過不少商務場景,都是前端很厚重的東西,不只僅是管理控制檯這種,這類東西里面,業務邏輯的佔比要比視圖大挺多的,如何組織這些東西,目前幾個主流技術棧都沒有解決方案,要靠業務架構師去擺平。
 

如今我要說說爲何我這麼支持Vue了,沒什麼,可能有些方面是不如React,不如Angular,但它是漸進的,沒有強主張,你能夠在原有大系統的上面,把一兩個組件改用它實現,當jQuery用;也能夠整個用它全家桶開發,當Angular用;還能夠用它的視圖,搭配你本身設計的整個下層用。你能夠在底層數據邏輯的地方用OO和設計模式的那套理念,也能夠函數式,均可以,它只是個輕量視圖而已,只作了本身該作的事,沒有作不應作的事,僅此而已。

漸進式的含義,個人理解是:沒有多作職責以外的事。
相關文章
相關標籤/搜索