天天看點

java 漸進式_vue漸進式架構的了解

主張最少,也就是弱主張,他是在vue核心庫(視圖模闆引擎)的基礎上,去逐漸添加所需要功能(如,元件系統、路由、狀态機等)

vue“漸進式”:是指先使用vue核心庫,在vue核心庫的基礎上,根據自己需要再去逐漸增加功能。

Vue的核心的功能,是一個視圖模闆引擎,但這不是說Vue就不能成為一個架構。

在聲明式渲染(視圖模闆引擎)的基礎上,我們可以通過添加元件系統、用戶端路由、大規模狀态管理來建構一個完整的架構。

更重要的是,這些功能互相獨立,你可以在核心功能的基礎上任意選用其他的部件,不一定要全部整合在一起。

所說的“漸進式”,其實就是Vue的使用方式,同時也展現了Vue的設計的理念。

有一種了解是漸進式代表的含義代表:主張最少。

每個架構都不可避免會有自己的一些特點,進而會對使用者有一定的要求,這些要求就是主張,主張有強有弱,它的強勢程度會影響在業務開發中的使用方式。

比如說,Angular,它兩個版本都是強主張的,如果你用它,必須接受以下東西:

- 必須使用它的子產品機制

- 必須使用它的依賴注入

- 必須使用它的特殊形式定義元件(這一點每個視圖架構都有,難以避免)

是以Angular是帶有比較強的排它性的,如果你的應用不是從頭開始,而是要不斷考慮是否跟其他東西內建,這些主張會帶來一些困擾。

比如React,它也有一定程度的主張,它的主張主要是函數式程式設計的理念,比如說,你需要知道什麼是副作用,什麼是純函數,如何隔離副作用。它的侵入性看似沒有Angular那麼強,主要因為它是軟性侵入。

你當然可以隻用React的視圖層,但幾乎沒有人這麼用,為什麼呢,因為你用了它,就會覺得其他東西都很别扭,于是你要引入Flux,Redux,Mobx之中的一個,于是你除了Redux,還要看saga,于是你要糾結業務開發過程中每個東西有沒有副作用,純不純,甚至你連這個都可能不能忍:

const getData = () => {

// 如果不存在,就在緩存中建立一個并傳回

// 如果存在,就從緩存中拿

}

因為你要糾結它有外部依賴,同樣是不加參數調用,連續兩次的結果是不一樣的,于是不純。

vue可能有些方面是不如React,不如Angular,但它是漸進的,沒有強主張,你可以在原有大系統的上面,把一兩個元件改用它實作,當jQuery用;

也可以整個用它全家桶開發,當Angular用;還可以用它的視圖,搭配你自己設計的整個下層用。

你可以在底層資料邏輯的地方用OO和設計模式的那套理念,也可以函數式,都可以,它隻是個輕量視圖而已,隻做了自己該做的事,沒有做不該做的事,僅此而已。