美文网首页
react中使用redux

react中使用redux

作者: xymspace | 来源:发表于2020-06-08 20:57 被阅读0次

明确概念:

Reducer

  • 是一个纯函数,接收旧的state和action,返回新的state
  • 与被传入Array.pototype.reduce(reducer, ?initialValue)里的回调函数属于相同类型
  • 保持reducer纯净十分重要,永远不要在reducer中执行如下操作:
  1. 修改传入参数
  2. 执行有副作用的操作(如API请求和路由跳转)
  3. 调用非纯函数(如Date.now()Math.random()

reduce

  • 数组的reduce
array=[1,2,3,4,5]
const reducer = (sum ,currentValue)=> (
// 第一次循环,sum 等于1,currentValue等于2
// 之后循环currentValue被依次顺序赋值,sum做累加结果
// 循环结束,返回最终累加结果
  return sum + currentValue
)
array.reduce(reducer)

redux

  • 什么是redux
  1. redux是一个纯粹的状态管理器,不仅限react可以使用。将动作(action) 变换成 state 转换函数(reducer),然后放到一个统一的地方(store)来 setState
  2. 数据处理方式:默认只支持同步,实现异步需要添加中间件(🌰:redux-thunk 和 redux-logger)
npm install redux-thunk edux-logger --S
  1. 专门用于react的redux是:react-redux
npm install redux --S
npm install react-redux --S
  1. 数据处理流程:
  • redux用法
  1. 创建仓库(store)文件夹 (例如:xxxStore.js)。编写如下内容:
import {createStore} from 'redux'
// state有默认值,action从外界传入
function counterReducer(state = 0, action) {
    switch (action.type) {
        case "add":
        return state + 10
            
        case "subtraction":
        return state - 20
            
        default:
            return state
    }
}
  1. 修改index.js
import store from './store/ReactReduxStore'
import {Provider} from 'react-redux'

ReactDOM.render(
  <React.StrictMode>
    <Provider store={store}>
        <App />
    </Provider>
    
  </React.StrictMode>,
  document.getElementById('root')
);
  1. 在组件中,导入仓库,向props中添加事件和属性
import React, {Component} from 'react'
import {connect} from 'react-redux'

// react-redux 提供了两个重要API provider为后代组件提供store connect为组件提供数据和变更方法

class 组件名 extends Component {
    render() {
        console.log(this.props);
        
        const {counter, add, sub} = this.props

        return (
        <div>
            <div>react-redux</div>
            <p>{counter}</p>
            <button onClick={add}>add</button>
            <button onClick={sub}>subtraction</button>
        </div>
        )
    }
}

export default connect(
// 向props中添加事件和属性
    // state
    state => {
        console.log(state);
        return {counter: state}
    },

    // dispatch
    {
        add: () => {
            return {type: "add"}
        },
        sub: () => {
            return {type: "subtraction"}
        }

    }
)(组件名)

相关文章

  • redux

    单独使用redux redux是核心库 与react配合使用redux 安装react-redux react-r...

  • react-redux

    使用react-redux,可以更方便的使用redux开发 先install react-redux使用react...

  • 一个完整小巧的Redux全家桶项目

    OneArticle: 使用React-Native开发,使用Redux,React-Redux,Redux-Pe...

  • redux note(一)

    redux 搭配 React使用 Redux和React之间没有关系,Redux支持React, Angular,...

  • react-redux框架之connect()与Provider

    react-redux 在react-redux 框架中,给我提供了两个常用的API来配合Redux框架的使用,其...

  • React-redux的使用

    React-redux是一个第三方模块,它可以帮我们在react中更方便的使用redux,使用React-redu...

  • 深入解析React-redux插件入门

    react-redux是使用redux开发react时使用的一个插件,另外插一句,redux不是react的产品,...

  • React-redux插件入门实战

    react-redux是使用redux开发react时使用的一个插件,另外插一句,redux不是react的产品,...

  • react-redux

    redux 全局状态管理 react-redux 优化模块 优化redux的使用过程 通过react-redux ...

  • React-Redux 使用

    目前使用版本 建议先了解 Redux 的使用!Redux使用(纯Redux使用) React-Redux 是 Re...

网友评论

      本文标题:react中使用redux

      本文链接:https://www.haomeiwen.com/subject/yznaghtx.html