【taro react】 ---- 使用发布-订阅模式解决重复请求和重复点击问题

1. 遇到的问题

  1. 问题一:接受一个老项目,现在会将这个项目以 H5 页面嵌入到 app 中。遇到的问题就是在同一个页面获取定位调用了很多次,但是现在 app 的规范对于获取用户定位信息的次数受到限制,一个页面只能获取一次,不能多次调用 app 的 api 获取用户定位。然后看了一下项目的代码,获取定位的方法,进行了统一的封装,但是存在在不同的组件内进行调用,这样就导致同一个页面,调用了多次定位方法。
  2. 问题二:订单预览界面接口较慢,出现了用户在接口没有响应的情况下,多次提交了订单,造成同一订单,进行了多次下单。

2. 解决办法

  1. 问题一解决办法:
    1.1 将组件内部的获取定位的方法全部提到页面,页面获取定位后传到组件内部,再用页面的定位进行组件内的操作或请求;
    1.2 使用状态管理,比如 redux ,在组件内部监听状态的改变,也就是定位值的获取,然后进行组件的下步操作;
    1.3 使用 useContext 获取页面的定位状态,当然这种方法其实和方法二的状态管理是一个,都是监听页面获取定位的值,然后进行组件内部操作;
    1.4 上边的方法修改代码量都比较大,遇到的问题主要需求就是:不管页面调用了多少次定位方法,调用 app 的 api 只能是一次。又不想大量修改原来的代码,经过分析,改造调用定位的方法,使用发布-订阅模式。

  2. 问题二解决办法:
    2.1 其实这个问题是开发者在开发中最高频率出现的问题,解决的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rattenking

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值