react实现路由切换动画效果

先看效果图

在这里插入图片描述
首先安装一下插件

yarn add  react-transition-group

把你需要有动画效果的页面用CSSTransition包裹起来

import { CSSTransition } from 'react-transition-group';
import { RouteComponentProps } from 'react-router-dom';

const Album: FC<RouteComponentProps> = ({
  history
}): ReactElement => {
  const [show, setShow] = useState<boolean>(true);
    /**
   * 返回上一个路由
   */
  const handleClickBack = useCallback((): void => {
    setShow(false);
  }, []);
    return (
    <CSSTransition
      in={show}
      timeout={300}
      appear={true}
      classNames="fly"
      unmountOnExit
      onExited={history.goBack}
    >
    <a onClick={handleClickBack}>返回</a>
    </CSSTransition>
    )
}
<CSSTransition>标签包裹需要设置动画的标签

1.in : 绑定控制动画效果切换的属性 this.state.show的值在truefalse之间切换来控制动画效果

2.timeout: 动画持续的时间

3.classNames : 动画的class名 与.css中样式类名一致

4.unmountOnExit : 动画出场即fade-exit-done样式效果结束后 直接将标签移除掉(若没有该属性 只是不显示标签 标签的位置任然占有)

5.onExited : 钩子函数 还有很多不同时刻的钩子函数 

6.appear : 值为true时 第一次显示标签是也有动画效果 需要在.css文件中设置相关样式

具体查看官网文档

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值