hook情况下,解决内联没有:hover的方案

本文介绍了如何在React应用中利用useState Hook和MobX来模拟CSS的:hover伪类效果,通过定义hover状态变量,并结合onMouseOver和onMouseLeave事件来切换元素的颜色。同时探讨了通过改变类名来管理主题颜色的替代方案,以实现更易于维护的代码结构。
摘要由CSDN通过智能技术生成
大致思路:

定义一个变量,名为hover,通过该变量来判断该块是否处于被hover的状态
onMouseOver:鼠标移上来时
onMouseLeave:鼠标移走时
(就像一个Switch开关,实际上只能代替hover的作用,毕竟内联没有伪类)
解释:store.color是mobx定义的全局变量,在头部有引用,在此将它视为一个颜色就好

const [hoverput, setHoverput] = React.useState(false)

function getcolor(hover: boolean) {
  return hover ? store.color : ''
}

return (
  <div
    className={style.poa}
    onMouseOver={() => {
      setHoverput(true)
    }}
    onMouseLeave={() => {
      setHoverput(false)
    }}
    style={{ color: getcolor(hoverput) }}>
    <span className={style.poaSpan} id="poaSpan">
      Put
    </span>
    <span className={style.poS}>添加</span>
  </div>
)

额外思路:

其实这么写还不如多定义几个类,因为是为了通过mobx去控制主题颜色,那么更改主题颜色的时候更改整个类名,实际上更易于后续管理

  • 但这仍然是一个解决内联没有:hover伪类的好办法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值