在原react项目中集成使用Redux(使用步骤总结)

简介: 之前写的一个react项目,需要在里面使用Redux,记录一下实现的步骤

前言

之前写的一个react项目,需要在里面使用Redux,记录一下实现的步骤

安装Redux

要在项目中使用,所以先来安装一下redux 和 react-redux

cnpm i -D redux react-r

这里是使用redux完成这个项目中菜单的一些功能,下面列举的新建文件相关的功能在之前文章有说明,这里就不叙述了

新建使用Redux的相关文件

在 src 目录下新建 store 文件夹用作仓库,
在store下新建文件:

1.新建contants.js进行定义一个名字

export const SWITCH_MENU = 'SWITCH_MENU'

2.新建index.js在里面进行创建:

import { createStore } from 'redux'
import reducer from './reducer'

const store = createStore(reducer)

export default store

3.新建action.js

import { SWITCH_MENU } from './contants'

export const switchMenuAction = menuName => ({
    type: SWITCH_MENU,
    menuName
})

4.新建reducer.js建立连接

import { SWITCH_MENU } from './contants'

const initState = {
    menuName: '首页'
}

const reducer = (state = initState, action) => {
    switch(action.type) {
        case SWITCH_MENU:
            return {...state, menuName: action.menuName}
        default:
            return state
    }
}

export default reducer

全局使用Redux

想要全局使用,就需要使用Provider组件进行一个包裹
来到根目录src下的index.js文件:
先引入Provider和需要用到的store

import { Provider } from 'react-redux'
import store from './store'

然后使用 Provider 进行包裹,并将store传进去:

ReactDOM.render(
  <Provider store={store}>
    <BrowserRouter>
      <App />
    </BrowserRouter>
  </Provider>,
  document.getElementById('root')
);

在导航页面进行使用,完成功能

来到nav文件夹下的index.js文件
引入 connect 和 switchMenuAction

import { connect } from 'react-redux'
import { switchMenuAction } from '../../store/action'

在最下面调用connect,然后将Index传入进去(Index是这里使用的组件名):

export default connect()(Index)

定义一个switchMenu函数:
调用dispatch在里面定义switchMenuAction并传入menuName,因为我们最终就是通过menuName进行展示

switchMenu(menuName) {
    const { dispatch } = this.props
    dispatch(switchMenuAction(menuName))
}

然后就直接在渲染的menu.item中定义点击事件,这样就能进行菜单的切换:

getMenuItem = (data) => {
    // console.log(data)
    return data.map(item => {
        if (item.children) {
            return <SubMenu key={item.key} title={item.title}>
                {this.getMenuItem(item.children)}
            </SubMenu>
        } else {
            return <Menu.Item key={item.key} title={item.title}
            onClick={e => this.switchMenu(item.title)}>
                <Link to={item.key}>{item.title}</Link>
                </Menu.Item>
        }
    })
}

最后

好了本篇文章就到此结束了,主要讲了如何在已有项目中集成使用redux。大概总结下就以下步骤:

  1. 导包安装redux
  2. 新建仓库相关的文件并进行定义创建联系
  3. 在需要的地方进行使用

如果对redux基础不太清楚的可以看看之前的几篇文章:
Redux的基础用法详解(纯函数的概念)
在react项目实战中使用Redux(案例讲解)

相关文章
|
9月前
|
安全 Java 数据库
SpringSecurity认证授权及项目集成
本文介绍了基于Spring Security的权限管理框架,涵盖认证、授权与鉴权核心概念,通过快速入门示例演示集成流程,并结合数据库实现用户认证。进一步扩展实现正常登录,JWT登录及鉴权管理器,实现灵活的安全控制,适用于前后端分离项目中的权限设计与实践。
806 4
|
9月前
|
资源调度 JavaScript 前端开发
在Vue 3项目中集成Element Plus组件库的步骤
总结起来,在集成过程当中我们关注于库本身提供功能与特性、环境搭建与依赖管理、模块化编程思想以及前端工程化等方面知识点;同时也涵盖前端性能优化(比如上文提及“按需加载”)与定制化开发(例如“自定义主题”)等高级话题.
895 16
|
11月前
|
JSON 分布式计算 大数据
springboot项目集成大数据第三方dolphinscheduler调度器
springboot项目集成大数据第三方dolphinscheduler调度器
740 3
|
11月前
|
Java 关系型数据库 数据库连接
Spring Boot项目集成MyBatis Plus操作PostgreSQL全解析
集成 Spring Boot、PostgreSQL 和 MyBatis Plus 的步骤与 MyBatis 类似,只不过在 MyBatis Plus 中提供了更多的便利功能,如自动生成 SQL、分页查询、Wrapper 查询等。
1049 2
|
11月前
|
Java 关系型数据库 MySQL
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
1050 2
|
11月前
|
分布式计算 Java 大数据
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
567 2
|
分布式计算 大数据 Java
springboot项目集成大数据第三方dolphinscheduler调度器 执行/停止任务
springboot项目集成大数据第三方dolphinscheduler调度器 执行/停止任务
320 0
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
消息中间件 监控 Java
您是否已集成 Spring Boot 与 ActiveMQ?
您是否已集成 Spring Boot 与 ActiveMQ?
590 0
|
监控 druid Java
spring boot 集成配置阿里 Druid监控配置
spring boot 集成配置阿里 Druid监控配置
1660 6

热门文章

最新文章