摘要:學(xué)習(xí)是一個(gè)漸進(jìn)和修正的過(guò)程。學(xué)習(xí)在一定程度上是一個(gè)試錯(cuò)的過(guò)程。唯有有了一個(gè)理解,才能檢驗(yàn)對(duì)錯(cuò)。對(duì)的理解上有句話是說(shuō),編程無(wú)外乎兩件事,組合和抽象。處理這些變化的責(zé)任由和共同完成。具體來(lái)說(shuō),是針對(duì)一類數(shù)據(jù)進(jìn)行操作,比如評(píng)論。
本文僅僅是對(duì)Flux的個(gè)人理解,做交流之用,如果錯(cuò)誤,還望大家指出!
剛才用了1個(gè)多小時(shí),看了一下Flux,想說(shuō)一下自己的理解??赡艽蠹視?huì)覺(jué)得,只花了這么少的時(shí)間,就跑出來(lái)說(shuō)自己的理解,是件很可笑的事情。不過(guò)我想說(shuō)下寫(xiě)這篇文章的原因。
學(xué)習(xí)是一個(gè)漸進(jìn)和修正的過(guò)程。多東西都沒(méi)辦法一下子掌握,那么就需要在實(shí)踐中反復(fù)加深理解。學(xué)習(xí)在一定程度上是一個(gè)試錯(cuò)的過(guò)程。
既然要試錯(cuò),就要有自己的理解,然后在實(shí)踐中進(jìn)行檢驗(yàn)。唯有有了一個(gè)理解,才能檢驗(yàn)對(duì)錯(cuò)。如果沒(méi)有理解,往往會(huì)出現(xiàn)懵懵懂懂,原地打轉(zhuǎn)的現(xiàn)象。
于是有了下面這篇筆記。
對(duì)Flux的理解SICP上有句話是說(shuō),編程無(wú)外乎兩件事,組合和抽象。我也打算從這兩點(diǎn)出發(fā)來(lái)理解Flux。
一個(gè)功能,我們要如何把它分解成不同部分?或者說(shuō)我們用什么樣的部分來(lái)組合成出這個(gè)功能?
首先是用戶能看到的部分,在Flux中就是View。View用來(lái)處理頁(yè)面結(jié)構(gòu)以和交互(用戶操作頁(yè)面后會(huì)產(chǎn)生數(shù)據(jù)變化,react的做法是,直接重新渲染view)。
之后是用戶操作,用戶的操作被抽象為Actions,比如創(chuàng)建評(píng)論,比如刪除評(píng)論,都是一個(gè)Action。這個(gè)Action類似Rails controller中的Action。
Action是用來(lái)描述用戶行為的(Describe a user"s action)。
用戶進(jìn)行了操作,會(huì)使數(shù)據(jù)產(chǎn)生變化。處理這些變化(state)的責(zé)任由Dispatcher和Store共同完成。具體來(lái)說(shuō),Store是針對(duì)一類數(shù)據(jù)進(jìn)行操作,比如評(píng)論。而Dispatcher是用來(lái)處理多個(gè)Store。
參考Flux 架構(gòu)入門教程
The ReactJS Controller View Pattern
Flux Utils
淺談 React、Flux 與 Redux
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/81110.html
摘要:架構(gòu)小白入門筆記是提出的一種處理前端數(shù)據(jù)的架構(gòu),學(xué)習(xí)就是學(xué)習(xí)它的思想。這個(gè)筆記是我在學(xué)習(xí)了阮一峰老師的架構(gòu)入門教程之后得出,里面的例子和部分原文來(lái)自于其不同在于我用將其改寫(xiě)了,并加入了注釋。 Flux架構(gòu)小白入門筆記 Flux是facebook提出的一種處理前端數(shù)據(jù)的架構(gòu),學(xué)習(xí)Flux就是學(xué)習(xí)它的思想。 這個(gè)筆記是我在學(xué)習(xí)了阮一峰老師的Flux 架構(gòu)入門教程之后得出,里面的例子和部分原...
摘要:一般來(lái)說(shuō),聲明式編程關(guān)注于發(fā)生了啥,而命令式則同時(shí)關(guān)注與咋發(fā)生的。聲明式編程可以較好地解決這個(gè)問(wèn)題,剛才提到的比較麻煩的元素選擇這個(gè)動(dòng)作可以交托給框架或者庫(kù)區(qū)處理,這樣就能讓開(kāi)發(fā)者專注于發(fā)生了啥,這里推薦一波與。 本文翻譯自FreeCodeCamp的from-zero-to-front-end-hero-part。 繼續(xù)譯者的廢話,這篇文章是前端攻略-從路人甲到英雄無(wú)敵的下半部分,在...
摘要:應(yīng)用這說(shuō)明并不是單指設(shè)計(jì)給用的,它是獨(dú)立的一個(gè)函數(shù)庫(kù),可通用于各種應(yīng)用。在數(shù)據(jù)流的最后,要觸發(fā)最上層組件的,然后進(jìn)行整體的重新渲染工作。單純?cè)诘膶?duì)象上是沒(méi)有辦法使用,要靠額外的函數(shù)庫(kù)才能這樣作,這是一定要使用類似像這種函數(shù)庫(kù)的主要原因。 Redux的官網(wǎng)中用一句話來(lái)說(shuō)明Redux是什么: Redux是針對(duì)JavaScript應(yīng)用的可預(yù)測(cè)狀態(tài)容器 這句話雖然簡(jiǎn)短,其實(shí)是有幾個(gè)涵義的: ...
摘要:是分發(fā)器,是數(shù)據(jù)與邏輯處理器,會(huì)在注冊(cè)針對(duì)各個(gè)命令字的響應(yīng)回調(diào)函數(shù)。當(dāng)按如下方式觸發(fā)回調(diào)時(shí),回調(diào)函數(shù)具備事件的特性。 本系列博文從 Shadow Widget 作者的視角,解釋該框架的設(shè)計(jì)要點(diǎn)。本篇解釋 Shadow Widget 在 MVC、MVVM、Flux 框架之間如何做選擇。 showImg(https://segmentfault.com/img/bVOODj?w=380&h...
閱讀 3406·2021-09-22 15:17
閱讀 2761·2021-09-02 15:15
閱讀 1794·2019-08-30 15:54
閱讀 2014·2019-08-30 14:02
閱讀 2544·2019-08-29 16:58
閱讀 3003·2019-08-29 16:08
閱讀 1345·2019-08-26 12:24
閱讀 1670·2019-08-26 10:41