React路由中的redux和redux知识点拓展

 更新时间:2022年08月28日 10:45:16   作者:公众号_前端每日技巧​​​​​​​  
这篇文章主要介绍了React路由中的redux和redux知识点拓展,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的朋友可以参考学习一下

路由中使用redux

在路由中使用redux只需要两步:

  • 第一步 在路由策略组件中(如HashRouter),渲染Route组件,并在该Route路由规则组件中,引入connect方法处理后的应用程序组件
  • 第二步 在Provider组件中,渲染路由策略组件(如HashRouter)。

注意:路由规则渲染组件的时候,路由规则组件只负责向组件传递路由相关的数据,其他的数据(如store数据)是不会传递的

所以Route渲染的组件,想接收store中的数据,我们只能采用第二种方式,渲染处理后的组件。

路由reducer

路由也提供了reducer方法,我们需要引入react-router-redux

提供了routerReducer,表示路由的reducer

我们也想添加到应用中,我们就要使用combineReducers方法添加多个reducer

参数是对象:

key表示state名称(命名空间)

value表示reducer

相当于vuex中的module切割模块

此时合并后,在组件中,访问state数据,要携带命名空间

// 拓展组件
let DealApp = dealFn(App);
let DealHome = dealFn(Home);
let DealList = dealFn(List);
let DealDetail = dealFn(Detail);
// 第二步 确定渲染方式
let routes = (
<HashRouter>
{/*<App></App>*/}
{/* 1 通过路由规则,渲染处理后的应用程序 */}
<Route path="/" component={DealApp}></Route>
</HashRouter>
)
// 2 在provider中,渲染路由规则
render(<Provider store={store}>{routes}</Provider>, app)

Redux拓展

state拓展

我们目前操作的state都是一个值类型的数据

因此我们可以直接操作这个state数据

如果state是一个引用类型的数据,我们就不能在state上直接操作了

我们要先定义新对象,在新对象上操作数据,最终与原来的state合并成新对象,并返回这个新对象作为新的state数据

我们可以通过ES6提供的Object.assign方法来合并对象,

由于后面的数据会覆盖前面的数据,因此我们将新对象放在state对象之后。

action拓展

action是一个通信的对象,里面携带消息数据

静态action

我们目前定义的action对象都是一个静态的action对象,

也就是说action中的数据是固定的

适用性会收到限制。为了提高适用性,我们可以定义动态action

动态action

动态action是一个函数,可以接收参数,我们根据参数的不同,返回不同的action,这样就增强了action对象的适用性了

异步action

到目前为止,我们所发送的action都是同步的,因为在action中没有异步的操作

异步action适用场景:

react是一个视图层的框架,但是我们有时候将请求放在组件中,就会让组件做了太多数据业务逻辑方面的事情了,有时候我们想将这部分请求放在action实现,此时这个action就是一个异步的action

异步action与同步action相比:

  • 同步action(例如动态action),是一个函数,返回值是一个对象(就是发布的aciton对象)
  • 异步aciton,是一个函数,返回值是一个函数
  • 返回值函数中,参数是dispatch
  • 我们可以在返回值函数中,实现异步操作,并在操作完成的时候,通过参数dispatch发布同步的action消息。
  • redux默认不支持异步,想使用异步action就要安装中间件

异步action中间件

redux-thunk是异步action中间件

我们可以通过applyMiddleware方法,将其安装在redux中,

该方法参数就是中间件,返回一个新的方法,用来拓展createState方法,会得到一个新的创建store方法,此时我们用这个新的方法创建store,新的store就具有了异步aciton的功能。

到此这篇关于React路由中的redux和redux知识点拓展的文章就介绍到这了,更多相关React redux和redux内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • React-Native之截图组件react-native-view-shot的介绍与使用小结

    React-Native之截图组件react-native-view-shot的介绍与使用小结

    这篇文章主要介绍了React-Native之截图组件react-native-view-shot的介绍与使用小结,需本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,要的朋友可以参考下
    2021-08-08
  • React jsx文件介绍与使用方式

    React jsx文件介绍与使用方式

    这篇文章主要介绍了React jsx文件介绍与使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • react配置webpack-bundle-analyzer项目优化踩坑记录

    react配置webpack-bundle-analyzer项目优化踩坑记录

    这篇文章主要介绍了react配置webpack-bundle-analyzer项目优化踩坑记录,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 一百多行代码实现react拖拽hooks

    一百多行代码实现react拖拽hooks

    这篇文章主要介绍了一百多行代码实现react拖拽hooks,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • React组件间通讯传值实现详解

    React组件间通讯传值实现详解

    这篇文章主要介绍了React组件间通讯传值,react组件的通信属于开发基础知识,今天来梳理一下,当然rudex还按老规矩排除在外,如同上篇文章的hooks一样,单独梳理
    2022-11-11
  • React Native 自定义下拉刷新上拉加载的列表的示例

    React Native 自定义下拉刷新上拉加载的列表的示例

    本篇文章主要介绍了React Native 自定义下拉刷新上拉加载的列表的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • React 封装自定义组件的操作方法

    React 封装自定义组件的操作方法

    React中自定义组件的重要性在于它们提供了代码重用、降低耦合性、提升可维护性、更好的团队协作、灵活性和易于测试和调试等好处,从而提高了开发效率和质量,这篇文章主要介绍了React 封装自定义组件,需要的朋友可以参考下
    2023-12-12
  • react fiber使用的关键特性及执行阶段详解

    react fiber使用的关键特性及执行阶段详解

    这篇文章主要为大家介绍了react fiber使用的关键特性及执行阶段详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • React 源码中的依赖注入方法

    React 源码中的依赖注入方法

    这篇文章主要介绍了React 源码中的依赖注入方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • React commit源码分析详解

    React commit源码分析详解

    前两章讲到了,react 在 render 阶段的 completeUnitWork 执行完毕后,就执行 commitRoot 进入到了 commit 阶段,本章将讲解 commit 阶段执行过程源码
    2022-11-11

最新评论