redux-saga中的take应该怎么使用

这次给大家带来redux-saga中的take应该怎么使用,redux-saga中的take使用的注意事项有哪些,下面就是实战案例,一起来看一下。

带来一个自己研究好久的API使用方法.

redux-saga中effect中take这个API使用方式,用的多的是call,put,select,但take这个平常还真没什么机会用上,也不清楚在哪里使用才好,不管怎么样,既然是redux-saga写出来的,肯定是有他的用法的,不管37 21,先学会使用方法再说.

先看看介绍:

take

take的表现同takeEvery一样,都是监听某个action,但与takeEvery不同的是,他不是每次action触发的时候都相应,而只是在执行顺序执行到take语句时才会相应action。

当在genetator中使用take语句等待action时,generator被阻塞,等待action被分发,然后继续往下执行。

takeEvery只是监听每个action,然后执行处理函数。对于何时相应action和 如何相应action,takeEvery并没有控制权。

而take则不一样,我们可以在generator函数中决定何时相应一个action,以及一个action被触发后做什么操作。

最大区别:take只有在执行流达到时才会响应对应的action,而takeEvery则一经注册,都会响应action。

上代码:

effects: { * takeDemo1({payload}, {put, call, take}) { }, * takeInputChange({payload}, {put, call, take,takeEvery,takeLatest}) {  // yield call(delay,1000);  console.log(takeEvery);  // for (let i = 0; i < 3; i++) {   const action = yield take('takeBlur'});   console.log(action, 'action');   console.log(payload.value);  // } }, * takeBlur() {  console.log(323) },}

登录后复制

changeHandle(e){ this.props.dispatch({type:'takeInputChange',payload:{value:e.target.value}})}blur(){ this.props.dispatch({type:'takeBlur'})}render() { return (  

)}

登录后复制

页面上有一个input,绑定了两个方法,第一个是onchange方法,一个是onBlur方法,

当input值改变 的时候,通过 this.props.dispatch({type:’takeInputChange’}),调用此函数,但是因为遇到了take的方法,不能往下继续执行了(暂停了),如果这里的take换成了takeEvery则大有不同,函数会继续执行,就是下面的两个console会执行,

而takeEvery执行的方法则放在它的回调里了,看下面代码

yield takeEvery('takeBlur',()=>{console.log(payload.value)});

登录后复制

需要强调的是每次input改变的时候都会触发这个函数,所以每次改变的时候,会看到控制台都会打印一次console里的值.

接下来,如果input失去焦点后,则会执行onBlur方法,此时调用this.props.dispatch({type:’takeBlur’});

在takeInputChange里的take因为监听到了takeBlur这个action,那么就会继续执行需要执行的内容.

这个take反正是研究了还算长的时间,不知道这个东西在哪些时候能够派的上用场

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

推荐阅读:

怎样实现微信web端后退强制刷新

设置cookie过期自动更新和自动获取

React BootStrap框架如何使用

以上就是redux-saga中的take应该怎么使用的详细内容,更多请关注【创想鸟】其它相关文章!

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

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

(0)
上一篇 2025年3月8日 16:16:58
下一篇 2025年2月22日 16:18:11

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

相关推荐

  • 在ES6中子组件怎么调用父组件

    这次给大家带来在ES6中子组件怎么调用父组件,在ES6中子组件调用父组件的注意事项有哪些,下面就是实战案例,一起来看一下。 出于某些目的,最近又开始研究起了RN,看着教程一步步的学习,在最近却是碰到了一个问题,那就是父子组件的方法调用的问题…

    编程技术 2025年3月8日
    200
  • android textinput显示不全怎么解决

    这次给大家带来android textinput显示不全怎么解决,解决android textinput显示不全的注意事项有哪些,下面就是实战案例,一起来看一下。 出现的问题 如下图 原因 android 输入框默认带有上下内边距 解决 将…

    2025年3月8日
    200
  • datepicker怎么使用

    这次给大家带来datepicker怎么使用,使用datepicker的注意事项有哪些,下面就是实战案例,一起来看一下。 前言 写插件是很有意思,也很锻炼人,因为这个过程中能发现许多的细节问题。在前端发展的过程中,jQuery无疑是一个重要的…

    编程技术 2025年3月8日
    200
  • 安装Electron失败怎么处理

    这次给大家带来安装Electron失败怎么处理,安装Electron的注意事项有哪些,下面就是实战案例,一起来看一下。Electron 框架的前身是 Atom Shell,可以让你写使用 JavaScript,HTML 和CSS 构建跨平台…

    编程技术 2025年3月8日
    200
  • 在Bootstrap怎么操作表格

    这次给大家带来在Bootstrap怎么操作表格,在Bootstrap操作表格的注意事项有哪些,下面就是实战案例,一起来看一下。 本文实例讲述了Bootstrap实现的表格合并单元格。分享给大家供大家参考,具体如下: 1、问题背景 利用Boo…

    2025年3月8日
    200
  • vue2.0的循环遍历怎么实现

    这次给大家带来vue2.0的循环遍历怎么实现,实现vue2.0循环遍历的注意事项有哪些,下面就是实战案例,一起来看一下。 demo: 登录后复制 引入图片,注意路径: import con1 from “@/assets/img/con01…

    编程技术 2025年3月8日
    200
  • vue axios页面切换时怎么中断请求

    这次给大家带来vue axios页面切换时怎么中断请求,vue axios页面切换时中断请求的注意事项有哪些,下面就是实战案例,一起来看一下。 如下所示: Vue.prototype.$ajax=axios; const CancelTok…

    编程技术 2025年3月8日
    200
  • 在angularjs压缩后文件报错怎么解决

    这次给大家带来在angularjs压缩后文件报错怎么解决,解决angularjs压缩后文件报错的注意事项有哪些,下面就是实战案例,一起来看一下。 问题出现原因是由于压缩之后变量变成了,e、s、t等,需要依赖注入的方法没有使用中括号注入,而在…

    编程技术 2025年3月8日
    200
  • vue-cli打包代码时怎么抽离项目相关配置文件

    这次给大家带来vue-cli打包代码时怎么抽离项目相关配置文件,vue-cli打包代码时抽离项目相关配置文件的注意事项有哪些,下面就是实战案例,一起来看一下。 前言:当使用vue-cli进行开发时时常需要动态配置一些设置,比如接口的请求地址…

    2025年3月8日
    200
  • vue项目打包后刷新404怎么处理

    这次给大家带来vue项目打包后刷新404怎么处理,处理vue项目打包后刷新404的注意事项有哪些,下面就是实战案例,一起来看一下。 vue打包项目后刷新404的问题Nginx配置 server { listen 80; server_nam…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论