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

相关文章
|
缓存 JavaScript 网络架构
Vue 动态路由、异步加载组件、滚动行为、keep-alive....
Vue 动态路由、异步加载组件、滚动行为、keep-alive....
55 0
|
JavaScript 前端开发
umi + antd 动态主题色
这篇文章讲解的是动态主题色的变化,也就是,页面可能会有10种,或者20种颜色需要切换,不知道到底有多少种颜色;同时,文档也考虑到多人协助开发,开发人员只需要按照约定方式去编写样式、主题文件名、目录等命名规范即可。
1695 0
umi + antd 动态主题色
|
6月前
|
前端开发 JavaScript API
Nuxt3 实战 (十一):添加路由 Transition 过渡效果和 Loading 动画
这篇文章介绍了Nuxt3框架中页面和布局的过渡效果设置方法,以及首屏加载动画的添加。通过配置nuxt.config.ts文件和添加CSS样式,可以实现页面过渡效果。同时,文章也提到了在页面中设置不同的过渡效果和为布局和页面同时设置过渡效果的方法。最后,文章以一个Github仓库链接和一个线上预览地址作为总结,表示遵循官方文档操作即可完成相关设置。
160 0
Nuxt3 实战 (十一):添加路由 Transition 过渡效果和 Loading 动画
|
7月前
|
前端开发 JavaScript 数据可视化
前端vite+vue3——自动化配置路由布局
前端vite+vue3——自动化配置路由布局
115 0
|
7月前
vue2路由切换动画(左右横移动画)
vue2路由切换动画(左右横移动画)
138 0
|
7月前
|
JavaScript 前端开发 小程序
react-router4.2使用js控制路由跳转的3种方式
react-router4.2使用js控制路由跳转的3种方式
|
7月前
|
UED
Flutter之自定义路由切换动画
Flutter之自定义路由切换动画 在Flutter中,我们可以通过Navigator来实现路由管理,包括路由的跳转和返回等。默认情况下,Flutter提供了一些简单的路由切换动画,但是有时候我们需要自定义一些特殊的动画效果来提高用户体验。本文将介绍如何在Flutter中实现自定义的路由切换动画。
225 0
umi如何实现路由的动画跳转?
在src下新建一个layouts的文件夹,在layouts文件夹下新建两个文件
151 0
umi如何实现路由的动画跳转?
|
前端开发
react路由动画?
react路由动画?