react-redux的使用采用@connect修饰器方法(简单demo)

如果你采用 react-create-app脚手架话,按以下流程操作

1. npm install eject  弹出配置文件

2. npm install babel-plugin-transform-decorators-regacy --save-dev

3. 在package.json文件中babel加上plugins配置
  

  "babel": {
    "presets": [
      "react-app"
    ],
    "plugins": [
      "transform-decorators-legacy"
    ]
  }

4.我们这里实现一个登陆验证功能

新建一个redux.js,写入如下代码

const LOGIN = 'LOGIN';
const LONOUT = 'LONOUT';
//reducer
export function auth(state={ isAuth:false,user:'***' }, action) {
    switch(action.type){
        case LOGIN:
            return { ...state,isAuth:true };
        case LONOUT:
            return { ...state,isAuth:false };
        default:
            return state
    }
}
//action creator
export function login() {
    return {type:LOGIN}
}
export function logout() {
    return {type:LONOUT}
}

5. 在我们组件中引入上边redux.js

import { login } from "./redux";

@connect( state=>state.auth, { login } )

然后在我们的组件中就可以通过this.props.login(),this.props.logout(),操作改变isAuth的值,进而判断是否可以进入登陆之后才能查看的页面;

 

完整demo下载

https://github.com/zhanglongjiZLJ/react-redux-admin

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
react-redux是一个流行的用于在React应用中管理全局状态的库。Redux是JavaScript中一个用于状态管理的工具,它通过将状态存储在单一的全局状态树中,并使用纯函数来处理状态的变化,使得状态管理变得简单而可预测。 在React中使用Redux,通常需要使用react-redux库提供的connect函数。connect函数是一个高阶组件,用于连接React组件和Redux的状态管理机制。 connect函数的基本用法是将React组件作为参数传递给connect,并在返回的函数中配置所需的状态和动作。它接受两个参数:mapStateToProps和mapDispatchToProps。 mapStateToProps是一个函数,用于从Redux的全局状态树中选择所需的状态,并作为React组件的属性传递给组件。这样,组件可以通过props访问到所需的状态,并将其渲染到页面中。 mapDispatchToProps是一个函数,用于将Redux的动作绑定到组件的props上。这样,组件可以通过调用props中的方法来触发Redux中定义的动作。 connect函数还可以接收一个可选的第三个参数,用来配置其他属性,比如在组件未连接到Redux时是否抛出警告。 使用connect函数后,就可以将Redux的状态和动作与React组件连接起来,并使其能够访问和操作全局状态。这样,组件就可以根据状态变化来更新UI,并通过触发动作来改变全局状态。 总而言之,react-reduxconnect函数提供了一种简单而方便的方式来连接React组件与Redux的状态管理机制,使得在React应用中管理全局状态变得更加容易和可维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值