如何使用react redux

这次给大家带来如何使用react redux,使用react redux的注意事项有哪些,下面就是实战案例,一起来看一下。

环境准备

为了方便,这里使用create-react-app搭建react环境

create-react-app mydemo

登录后复制

弹出配置

如果需要自定义react的配置,需要运行下面的命令把配置文件弹出来。

npm run eject

登录后复制

安装redux

npm i redux --save

登录后复制

简单理解

redux简单用法就是通过它的store来订阅和发布信息。

通过subscribe来订阅action,通过dispatch来触发action。reducer中定义来各个action要做的事情。

demo代码

reducer定义

const Add = 'addGirl', Remove = "removeGirl";export function reducer(state = 0, action) {  switch (action.type) {    case Add:      return state + 1;    case Remove:      return state - 1;    default:      return 10;  }}//action creator,把action封装成一个方法,这样用的时候不用每次定义,避免出错export function addCreator() {  return { type: Add };}export function removeCreator() {  return { type: Remove };}export function addAsync() {  return (dispatch, getState) => {    setTimeout(function () {      dispatch(addCreator());    }, 1000);  }}

登录后复制

入口文件index.js

import React from 'react';import ReactDOM from 'react-dom';import './index.css';import App from './App';import registerServiceWorker from './registerServiceWorker';import { createStore } from 'redux';import thunk from 'redux-thunk';import { reducer,addCreator,removeCreaator } from './index.redux';import { Provider } from 'react-redux'const store = createStore(reducer);function render() {  ReactDOM.render(    ,    document.getElementById('root')  );}//封装成方法,方便下面的store的订阅调用render();//每当dispatch时,订阅的函数就会执行store.subscribe(render);registerServiceWorker();

登录后复制

App.js

import React, { Component } from 'react';import './App.css';class App extends Component { render() {  var store=this.props.store;  var num=store.getState();  return (   

现在有机关枪{this.props.num}把。

); }}export default App;

登录后复制

通过store的dispatch来触发action,index.js中订阅的事件就会执行。

redux的异步执行

redux中如果需要执行异步操作,需要安装react-thunk插件

npm i react-thunk --save

登录后复制

同时需要redux插件的applyMiddleware

关键代码

设置其实很简单,创建store时,把thunk传递给它就行了。

import thunk from 'redux-thunk';const store = createStore(reducer, applyMiddleware(thunk));

登录后复制

在app.js中增加一个触发异步操作的按钮,reducer中已经定义了一个异步的方法。

export function addAsync() {  return (dispatch, getState) => {    setTimeout(function () {      dispatch(addCreator());    }, 1000);  }}

登录后复制

异步调用方法会返回一个有两个参数的方法,两个参数都是函数,第一个是dispatch函数,第二个是getState函数。
dispatch触发action,getState获取state的值。

在app.js中增加代码

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

怎样使用Vue实现倒计时按钮

怎样利用Vue写一个双向数据绑定

以上就是如何使用react redux的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2750476.html

(0)
上一篇 2025年3月8日 05:36:30
下一篇 2025年2月26日 03:39:21

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 如何使用react-redux插件

    这次给大家带来如何使用react-redux插件,使用react-redux插件的注意事项有哪些,下面就是实战案例,一起来看一下。 react-redux简介 react-redux是使用redux开发react时使用的一个插件,另外插一句…

    编程技术 2025年3月8日
    200
  • 如何使用JS倒计时恢复按钮点击功能

    这次给大家带来如何使用JS倒计时恢复按钮点击功能,使用JS倒计时恢复按钮点击功能的注意事项有哪些,下面就是实战案例,一起来看一下。 倒计时时间到后,恢复按钮点击,常用于阅读协议: 阅读协议倒计时 var tim=9; function aa…

    2025年3月8日
    200
  • React高阶组件使用详解

    这次给大家带来React高阶组件使用详解,React高阶组件使用的注意事项有哪些,下面就是实战案例,一起来看一下。 是什么 高阶组件是一个函数,能够接受一个组件并返回一个新的组件。没有任何副作用。 为什么用 封装并抽离组件的通用逻辑,让此部…

    编程技术 2025年3月8日
    200
  • 在Vue组件中如何使用 TypeScript的方法(详细教程)

    typescript不仅可以约束我们的编码习惯,还能起到注释的作用,当我们看到一函数后我们立马就能知道这个函数的用法。这篇文章主要介绍了在vue组件中使用 typescript的方法,需要的朋友可以参考下 注意:此文并不是把vue改为全部替…

    2025年3月8日 编程技术
    200
  • 在React组件中详细讲解this的使用方法。

    这篇文章主要介绍了react组件中的this的具体使用,现在分享给大家,也给大家做个参考。 React组件的this是什么 通过编写一个简单组件,并渲染出来,分别打印出自定义函数和render中的this: import React fro…

    2025年3月8日
    200
  • 怎样在vue中使用ts(详细教程)

    本篇文章主要介绍了如何在vue中使用ts的示例代码,现在分享给大家,也给大家做个参考。 本文介绍了如何在vue中使用ts的示例代码,分享给大家,具体如下: 注意:此文并不是把vue改为全部替换为ts,而是可以在原来的项目中植入ts文件,目前…

    2025年3月8日 编程技术
    200
  • JS数组sort方法如何使用

    这次给大家带来JS数组sort方法如何使用,JS数组sort方法使用的注意事项有哪些,下面就是实战案例,一起来看一下。 算法课上,我们会接触很多种排序算法,什么冒泡排序、选择排序、快速排序、堆排序等等。那么javascript的sort方法…

    编程技术 2025年3月8日
    200
  • 在使用React组件中转 Vue 组件的命令写法有哪些?

    本文先介绍两个框架的组件共性和不兼容的地方,再介绍react-to-vue的使用和原理,需要的朋友可以参考下 基于目前React和Vue比较火,开发react-to-vue 工具的目的是为了进一步提高组件的可复用用性,让组件复用不仅仅局限在…

    2025年3月8日
    200
  • 为什么web开发中需要避免使用全局变量

    这次给大家带来为什么web开发中需要避免使用全局变量,web开发中避免使用全局变量的注意事项有哪些,下面就是实战案例,一起来看一下。 全局变量带来的问题主要是:随着代码量的增长,过多的全局变量会导致代码难以维护,并且容易出bug。一两个全局…

    编程技术 2025年3月8日
    200
  • 关于JS抛出错误使用汇总

    这次给大家带来关于js抛出错误使用汇总,js抛出错误的注意事项有哪些,下面就是实战案例,一起来看一下。 在JS中抛出错误是一门艺术。摸清楚代码中哪里合适抛出错误是需要时间的。因此,一旦搞清楚了这一点,调试代码的事件将大大缩短,对代码的满意度…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论