# redux-example
**Repository Path**: giteeqiqi/redux-example
## Basic Information
- **Project Name**: redux-example
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 3
- **Created**: 2020-07-07
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
#### 用create-react-app创建一个项目
1. 执行 ```npm i create-react-app -g```
2. 执行 ```create-react-app redux-example```
3. 执行 ```cd redux-example```
4. 执行 ```npm start```
浏览器出现以下界面,说明项目创建好了并成功运行

#### 创建相关组件
1. 在根目录下创建routes文件夹
2. 在routes下创建header和side文件夹
3. 在header和side下创建header的容器组件和ui组件,代码见https://gitee.com/huruqing/redux-example
#### redux相关配置
1. 安装redux和react-redux
```npm i redux react-redux --save-dev```
2. 创建side的reducer
```
// 创建action creator
export function showSideAction(payload) {
return {
type: 'SHOW-SIDE',
payload,
}
}
// 设置state初始值
const initState = {
show: false
}
// reducer
export default (state=initState,action)=> {
switch (action.type) {
case 'SHOW-SIDE':
return {
...state,
show: action.payload
}
default:
return state;
}
}
```
header的reducer
```
// 创建action creator
export function setTitleAtion(payload) {
return {
type: 'SET-TITLE',
payload,
}
}
// 设置state初始值
const initState = {
title: '卖座网'
}
// reducer 纯函数
export default (state=initState,action)=> {
switch (action.type) {
case 'SET-TITLE':
return {
...state,
title: action.payload
}
default:
return state;
}
}
```
#### 在目录的index.js配置prover和store
```
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import * as serviceWorker from './serviceWorker';
import { Privider } from 'react-redux';
import {createStore} from 'redux';
import { combineReducers } from 'redux';
import headerReducer from './routes/header/reducer';
import sideReducer from './routes/side/reducer';
const reducers = combineReducers({
header: headerReducer,
side: sideReducer
})
// 创建store
const store = createStore(reducers);
ReactDOM.render(