【taro react】 ---- 常用自定义 React Hooks 的实现【四】之遮罩层

本文介绍了如何在Taro和React.js项目中实现一个自定义Hook `useMask`,用于管理和控制遮罩层的显示与隐藏。通过单一变量控制,解决了在不同组件间共享遮罩层的问题,简化了状态管理。文章详细阐述了问题场景、解决办法、方案分析以及hook的实现过程,并探讨了跨组件使用和待解决的问题。
摘要由CSDN通过智能技术生成

1. 问题场景

在实际开发中我们会遇到一个遮罩层会受到多个组件的操作影响,如果我们不采用 redux 之类的全局状态管理,而是选择组件之间的值传递,我们就会发现使用组件的变量来控制组件的显示和隐藏很不方便,更不要说像遮罩层这样一个项目多处使用的公共组件,他的隐藏和显示也只能放到某一个模块的 redux 中,还要解决遮罩层在ScrollView内,会在IOS显示不全,等等bug的问题,可以说烦不胜烦。

2. 解决办法

  1. 使用当前页面模块的 redux 来管理当前页面中的遮罩层;
  2. 使用 useReducer 来管理当前页面中的遮罩层;
  3. 使用 hook 来实现遮罩层的清除和添加。

3. 方案分析

  1. 方案一和方案二其实原理都一样,就是将控制遮罩层的变量集中管理,但是缺点也很明显,就是我们需要多少遮罩层,就会创建多少个变量,维护这些变量来控制遮罩层的显示与隐藏。维护多变量控制多遮罩层
  2. 方案三我采用的是使用一个变量来接收遮罩层,通过改变变量的值来实现遮罩层的显示与隐藏。维护单一变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Rattenking

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

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

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

打赏作者

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

抵扣说明:

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

余额充值