redux——入門1
核心概念
redux中最核心的概念就三個,store,reducer,action,其間的資料流向關係是:
檢視層呼叫store.dispatch(action) => reducer處理action => store更新狀態後通知檢視層 => 檢視層更新
例子講解
下面以一個計數器的demo為例,進行例子講解
store.js
呼叫redux的createStore方法,建立一個store
createStore可以接受兩個引數,第一個reducer,第二個是state初始值,不傳則為undefined
import {createStore} from 'redux';
import reducer from '../reducer';
export default createStore(reducer);
reducer.js
reducer是一個純函式,接受兩個引數,第一個是state,第二個action
export default function(state = 0, action) {
switch(action.type) {
case 'INCREMENT':
return state + 1;
case 'DECREMENT':
return state - 1;
default:
return state;
}
}
counter.js
在counter.js中,需要注意的是在componentDidMount中,呼叫了store.subscribe(fn)方法進行了一個事件訂閱,就是說,在action完成,store的資料更新後,subscribe的fn會被執行
import React, {Component} from 'react';
import store from './store.js';
export default class Counter extends Component {
constructor(props) {
super(props);
this.state = {
count: store.getState()
};
this.onChange = this.onChange.bind(this);
}
componentDidMount() {
store.subscribe(this.onChange);
}
onChange() {
this.setState({
count: store.getState()
});
}
increment() {
store.dispatch({type: 'INCREMENT'});
}
decrement() {
store.dispatch({type: 'DECREMENT'});
}
render() {
return (
<div>
<h3>計數器</h3>
<p>{this.state.count}</p>
<button type="button" onClick={this.increment}>+++</button>
<button type="button" onClick={this.decrement}>---</button>
</div>
);
}
}
相關文章
- Redux 入門教程(1):基本用法Redux
- Redux入門Redux
- Redux 入門Redux
- Redux入門教程Redux
- 萌新 redux 入門Redux
- React 入門-redux 和 react-reduxReactRedux
- Redux 入門 Demo:TodoListRedux
- Redux入門到使用Redux
- Redux 入門 -- 拆分 reducerRedux
- [譯】Redux入門教程(二)Redux
- Redux-thunk快速入門Redux
- redux和mobx入門使用Redux
- redux 入門到實踐Redux
- redux 中介軟體入門Redux
- Redux 入門 -- 基礎用法Redux
- 傻瓜式入門ReduxRedux
- Redux 入門教程(3):React-Redux 的用法ReduxReact
- Redux 入門教程(三):React-Redux 的用法ReduxReact
- Redux 入門教程(一):基本用法Redux
- Redux 入門 -- 處理 async actionRedux
- flask入門1Flask
- 1、MyCat入門
- docker入門1Docker
- 1、dwr入門
- 機器學習1—入門機器學習
- JQuery入門(1)jQuery
- Redux之旅-1Redux
- Redux中文文件閱讀總結——快速入門Redux
- 手把手入門Fish-Redux開發flutter(中)ReduxFlutter
- 手把手入門Fish-Redux開發flutter(下)ReduxFlutter
- 手把手入門Fish-Redux開發flutter(上)ReduxFlutter
- React從入門到放棄(4):Redux中介軟體ReactRedux
- Docker入門(1):概述Docker
- Kafka入門(1):概述Kafka
- (1)入門MasaFramework教程Framework
- 1、Spring入門Spring
- Julia快速入門(1)
- Python(1):入門Python