個人對redux的明白

個人對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(<Children changeChildren={this.changeChildren} />);
    }
}
class Children extends React.Component{
    render(){
        return(<Button onClick={this.props.changeChildren()}>changeChildren</Button>);
    }
}

從上面代碼能夠看出組件的層級越高,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);

    原文作者:handsome
    原文地址: https://segmentfault.com/a/1190000014351804
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞