umi实现路由动画

简介: umi实现路由动画

首先安装第三方包 react-transition-group

在src文件路径下创建layouts文件夹


index.tsx中代码

import React, { useState, useEffect } from 'react'
import { TransitionGroup, CSSTransition } from 'react-transition-group'
import { history as Router, withRouter } from 'umi'
import { Switch } from 'react-router'
import './index.less'
const routerType = {
   'POP': 'back',
   'PUSH': 'in',
   'REPLACE': 'in'
}
export default withRouter(({ location, children, history }) => {
   return (
      <TransitionGroup style={{ height: '100%' }} className='transition_wrapper' childFactory={(child) => (
         React.cloneElement(child, { classNames: routerType[history.action] })
      )}>
         <CSSTransition key={location.pathname} appear timeout={3000}>
            <Switch location={location}>{(children as any)?.props?.children}</Switch>
         </CSSTransition>
      </TransitionGroup>
   )
})

index.less中代码

.in-enter-active{  // 入场的过渡状态类
    transition: all 3s;
    transform: translate(0, 0)!important;
  }
  .in-enter-done { // 入场的动画的结束状态类
      // opacity: 0.5;
      transform: translate(0, 0) !important;
  }
  .in-enter {  // 入场的动画开始状态类
    z-index: 5 !important;
    transform: translate(100%, 0);
  }
  .in-exit-active {    // 离场动画
      opacity:0;
      transition: all 3s;
      transform: translate(-100%, 0)!important;
  }
  .in-exit {  // 离场动画开始
      // transform: translate(0, 0)!important;
  }
  .in-exit-done { // 离场动画结束
  }
  // 返回动画
  .back-enter-active{  // 入场的过渡状态类
      transition: all 3s;
      transform: translate(0, 0)!important;
    }
  .back-enter-done { // 入场的动画的结束状态类
      // opacity: 0.5;
      transform: translate(0, 0) !important;
  }
  .back-enter {  // 入场的动画开始状态类
      z-index: 5 !important;
      transform: translate(-100%, 0);
  }
  .back-exit-active {    // 离场动画
      opacity:0;
      transition: all 3s;
      transform: translate(100%, 0)!important;
  }
  .back-exit {  // 离场动画开始
      // transform: translate(0, 0)!important;
  }
  .back-exit-done { // 离场动画结束
  }

将umits中的路由注释掉即可



祝朋友们写代码无bug

相关文章
|
12月前
|
缓存 JavaScript 网络架构
Vue 动态路由、异步加载组件、滚动行为、keep-alive....
Vue 动态路由、异步加载组件、滚动行为、keep-alive....
45 0
|
14天前
|
前端开发
|
4月前
vue2路由切换动画(左右横移动画)
vue2路由切换动画(左右横移动画)
|
10月前
|
前端开发 JavaScript 数据安全/隐私保护
React路由与导航
前言: React是一个流行的JavaScript库,用于构建用户界面。在使用React开发Web应用程序时,路由和导航是必不可少的功能之一。它们允许我们在不刷新页面的情况下在不同的视图之间进行切换,提供了更加流畅和交互式的用户体验。
73 0
umi如何实现路由的动画跳转?
在src下新建一个layouts的文件夹,在layouts文件夹下新建两个文件
131 0
umi如何实现路由的动画跳转?
|
前端开发
react路由动画?
react路由动画?
|
前端开发
React/Umi中实现移动端滑动图片验证功能
React/Umi中实现移动端滑动图片验证功能
219 0
|
前端开发
在react react-router-domV6 中使用路由懒加载和路由动画效果而造成的问题
在react react-router-domV6 中使用路由懒加载和路由动画效果而造成的问题
348 0