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