摘要:個(gè)人對的理解其實(shí)阮一峰大神已經(jīng)把詮釋的很清楚,在此我只是在他的基礎(chǔ)上加了一些我的理解。應(yīng)用是一個(gè)狀態(tài)機(jī),視圖與狀態(tài)是一一對應(yīng)的。所有的狀態(tài),保存在一個(gè)對象里面。
個(gè)人對redux的理解:
其實(shí)阮一峰大神已經(jīng)把redux詮釋的很清楚,在此我只是在他的基礎(chǔ)上加了一些我的理解。
首先有幾句話我覺得說的非常到位:
1、"如果你不知道是否需要 Redux,那就是不需要它。"
2、"只有遇到 React 實(shí)在解決不了的問題,你才需要 Redux 。"
3、Web 應(yīng)用是一個(gè)狀態(tài)機(jī),視圖與狀態(tài)是一一對應(yīng)的。
4、所有的狀態(tài),保存在一個(gè)對象里面。
react的核心思想就是組件,鏈接組件的兩大特性:
1、props:如同流水一樣,數(shù)據(jù)傳入最到最下層組件
2、state:組件的狀態(tài)
每個(gè)組件都可以有狀態(tài),簡單都組件交互都可以用state完成;
以有無state可將組件分為兩種:智能組件、木偶組件
木偶組件:只負(fù)責(zé)頁面的展示,別人給他什么,他就展示什么
智能組件:當(dāng)state狀態(tài)發(fā)生改變的時(shí)候,react會跟新ui層,當(dāng)組件有state的時(shí)候他可以控制自身或者子組件的顯示內(nèi)容
class Parent extends React.Component{ state = { children: "", }; changeChildren = () => { const children = "children"; this.setState({ children }); } render(){ return(); } }
class Children extends React.Component{ render(){ return(); } }
從上面代碼可以看出組件的層級越高,state的狀態(tài)可操作性越強(qiáng)
簡單的說redux將Parent的狀態(tài)脫離組件,形成一個(gè)獨(dú)立的數(shù)據(jù)結(jié)構(gòu),并凌駕于所有組件之上。
redux的state有以下特點(diǎn):
1、單一數(shù)據(jù)源
2、只能是只讀狀態(tài)
3、每一時(shí)刻對應(yīng)一種視圖狀態(tài)
redux的action:
用戶只能操作視圖層,用戶改變ui層的記錄
redux的redcuer:
1、它是一個(gè)具有state初始值,并有改變state值的方法的純函數(shù)
2、可接受action作為參數(shù) 改變state
3、用來生成或者改變state的純函數(shù)
4、可拆分reducer
redux的Store:
提供改變、獲取state方法的容器,接收reduer作為參數(shù)
簡單的講:
這里的Store提供的方法store.dispatch(action)相當(dāng)于上訴代碼的changeChildren方法
reducer方法生成state相當(dāng)于上述代碼定義 state={}
而store = createStore(reducer);
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/94192.html
摘要:簡介創(chuàng)建的函數(shù),返回一個(gè)對象,包含等方法合并多個(gè)中間件處理,在實(shí)際的前調(diào)用一系列中間件,類似于綁定和函數(shù)式編程中常見的方法,介紹官方提供的綁定庫。 前言 在學(xué)習(xí)了React之后, 緊跟著而來的就是Redux了~ 在系統(tǒng)性的學(xué)習(xí)一個(gè)東西的時(shí)候, 了解其背景、設(shè)計(jì)以及解決了什么問題都是非常必要的。接下來記錄的是, 我個(gè)人在學(xué)習(xí)Redux時(shí)的一些雜七雜八~ Redux是什么 通俗理解 h...
摘要:這對復(fù)雜問題定位是有好處的。同時(shí),也是純函數(shù),與的是純函數(shù)呼應(yīng)。強(qiáng)約束約定,增加了內(nèi)聚合性。通過約定和全局的理解,可以減少的一些缺點(diǎn)。約定大于配置也是框架的主要發(fā)展方向。 React+Redux非常精煉,良好運(yùn)用將發(fā)揮出極強(qiáng)勁的生產(chǎn)力。但最大的挑戰(zhàn)來自于函數(shù)式編程(FP)范式。在工程化過程中,架構(gòu)(頂層)設(shè)計(jì)將是一個(gè)巨大的挑戰(zhàn)。要不然做出來的東西可能是一團(tuán)亂麻。說到底,傳統(tǒng)框架與rea...
摘要:我們可以為元素添加屬性然后在回調(diào)函數(shù)中接受該元素在樹中的句柄,該值會作為回調(diào)函數(shù)的第一個(gè)參數(shù)返回。使用最常見的用法就是傳入一個(gè)對象。單向數(shù)據(jù)流,比較有序,有便于管理,它隨著視圖庫的開發(fā)而被概念化。 面試中問框架,經(jīng)常會問到一些原理性的東西,明明一直在用,也知道怎么用, 但面試時(shí)卻答不上來,也是挺尷尬的,就干脆把react相關(guān)的問題查了下資料,再按自己的理解整理了下這些答案。 reac...
摘要:我們約定,內(nèi)使用一個(gè)字符串類型的字段來表示將要執(zhí)行的動(dòng)作。多數(shù)情況下,會被定義成字符串常量。要進(jìn)去工廠加工產(chǎn)品,就得帶上相應(yīng)得鑰匙,不同的鑰匙對應(yīng)工廠中上不同的生產(chǎn)線里面的函數(shù),從而有不同的產(chǎn)出改變之后的 時(shí)間:2016.4.7-17:24作者:三月懶驢入門配置文章:鏈接 準(zhǔn)備 在你的項(xiàng)目下面加入redux / react-redux npm install redux --s...
閱讀 2934·2021-11-24 09:39
閱讀 3619·2021-11-22 13:54
閱讀 3419·2021-11-16 11:45
閱讀 2449·2021-09-09 09:33
閱讀 3204·2019-08-30 15:55
閱讀 1299·2019-08-29 15:40
閱讀 928·2019-08-29 15:19
閱讀 3406·2019-08-29 15:14