揭秘Redux(1): 自動機

其實是標題黨,Redux這麼簡單的東西,並沒有什麼好揭秘的。

文章在這裡:twiknight.gitbooks.io/b

只不過是對這個問題的一個回答:

理解 React,但不理解 Redux,該如何通俗易懂的理解 Redux? - 編程

我對現有的回答都不太滿意,所以嘗試自己寫了下。

然而,自己這篇我也不怎麼滿意,可能以後會修改。

Redux的雖然很驚艷,但是其想法並沒有什麼特別的地方,倒不如說:

它的思路特別蠢,可是它蠢而有效。

以前我們處理UI作業時構建各種關係錯綜複雜無非是為了爭取一點點渲染效率。但如果我們有Virtual Dom這種自動優化機制來幫忙,Redux這種看起來特蠢的思路反倒成了優勢——因為不需要在數據層搞那些七七八八的蹩腳關係模擬,我們可以省下大量的精力。

而這種看起來特蠢的思路當然也不是Redux獨創的,這就是自動機(Automata)的一個簡單實現。而這種理論,在埃尼亞克誕生之前就存在了:

nextState = f(currentState, input)n

如果你稍微想一想,就會發現,Redux的一切就是圍繞這個方程展開的。(當然automata是有嚴格定義的,並不是我這麼寫的:Automata theory)

另外,雖然Redux標榜自己是函數式的,但不要以為你用了它就擺脫了OOP,MV*那一套了。Redux本身就是半個微型的MV*實現——說它是半個,因為它不帶view,帶上React或者其他任何view,就是完整實現了。

在這個問題上,這篇文章很有意思:medium.com/@abhiaiyer/t

不過貌似medium已經被牆了……

當然,這部分在這篇裡面沒有寫——後面帶個(1),我總要留點東西給(2)吧。(逃

推薦閱讀:

如果一個程序員工作5年後還沒成為大牛,是不是該考慮別的路子了?
最讓你傷心的bug是什麼?

TAG:Redux | 前端开发 | 编程 |