Angular 狀態(tài)管理的演進
如果應(yīng)用使用單個的控制器管理所有的狀態(tài),Angular 中的狀態(tài)管理將從單個有機的單元開始。如果是一個單頁應(yīng)用,一個控制器還有意義嗎?我們從冰河世紀掙脫出來,開始將視圖、控制器,甚至指令和路由拆分為更小的獨立的單位。這是巨大的改進,但是對于復(fù)雜的應(yīng)用來說,管理復(fù)雜的狀態(tài)仍然是一個問題。對于我們來說,在控制器,服務(wù),路由,指令和偶爾的模板中包含散步的狀態(tài)是很常見的。可變的狀態(tài)本身不是邪惡的,但是共享的可變狀態(tài)則是災(zāi)難的入場券。
正如像 Angular 這樣的現(xiàn)代 Web 框架永遠地改變了我們以 jQuer 為中心的應(yīng)用開發(fā)方式,React 從根本上改變了我們在使用現(xiàn)代 Web 框架時處理狀態(tài)管理的方式。Redux 是這種改變的前沿和核心,因為它引入了一種優(yōu)雅地,但是非常簡單的方式來管理應(yīng)用程序狀態(tài)。值得一提的是,Redux 不僅是一個庫,更重要的是它是一種設(shè)計模式,完全與框架無關(guān),更巧的是可以與 Angular 完美合作。
整個文章的靈感來自 Egghead.io – Getting Started with Redux series by Dan Abramov. 除了創(chuàng)始人的說明沒有更好的途徑學(xué)習(xí) Redux。它完全免費并且改變了我的編程方式。
redux 的美妙之處在于它可以使用簡單的句子表達出來,總之,在我 “啊” 的時候就可以總結(jié)三個要點。
單個的狀態(tài)樹
redux 的基礎(chǔ)前提是應(yīng)用的整個狀態(tài)可以表示為延伸閱讀
學(xué)習(xí)是年輕人改變自己的最好方式