博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
React App项目页面进出场动画
阅读量:6938 次
发布时间:2019-06-27

本文共 1832 字,大约阅读时间需要 6 分钟。

  • github: 
  • demo:

用到的组件react-animated-router

react-animated-router

react 路由切换动画,支持嵌套路由 (nested routers)和动态路由(dynamic routers)。

安装

npm install react-animated-router --save复制代码

引入

在路由配置文件中引入,src/route/App.js 文件中引入

import AnimatedRouter from 'react-animated-router'; //导入我们的的AnimatedRouter组件import 'react-animated-router/animate.css'; //导入默认的切换动画样式,如果需要其它切换样式,可以导入自己的动画样式定义文件复制代码

使用

复制代码

AnimatedRouter是一个标准的 React 组件,类似react-router中的Switch,将它放入你的项目中,然后在需要支持动画的地方,使用AnimatedRouter替换你的Switch组件即可。

属性 类型 默认值 描述
prefix 字符串,可选 animated-router 应用到 CSSTransition 组件的 classNames 前缀。如果要在同一个项目中使用不同的动画,可以通过设置前缀来定义不同的动画。关于如何自定义动画,请查看下方说明
timeout 数字,可选 动画持续时间(毫秒),可以不传,默认为监听 transitionend 时间来判断动画结束。如果有动画异常,可以尝试设置该值,需要注意的是,该值应该与动画样式中定义的过渡时间一致
className 字符串,可选 如果传入 className 则会添加到动画节点所在容器节点上
transitionKey 字符串,可选 即每个页面节点需要的 key 值,如果不传则会使用当前页面地址的 pathname。
该属性可以用于处理路由页面中还有子路由时的情况,用来避免子路由切换会导致父级页面也一块被重载。
component 布尔,可选 'div' AnimatedRouter 默认会 render 一个 div 节点,你可以通过该字段修改 render 的节点类型,例如,component="section"将会 render <section>节点。在 react v16+中,可以传入 null 来避免渲染该节点。
appear 布尔,可选 false :是否启用组件首次挂载动画(启用的话将会触发 enter 进场动画)
enter 布尔,可选 true :是否启用进场动画
exit 布尔,可选 true :是否启用离场动画

自定义动画

如果不希望使用左右滑入动画,则可以自定义自己的路由动画。可以将默认的 animate.scss(css) 复制进自己的项目,然后修改不同阶段的样式值即可。

页面分为前进(forward)和后退(backward),两者分别会应用不同的 classNames 到react-transition-group的组件。关于 classNames 的更多用法,请参考。

默认的 classNames 如下,如果你设置了 prefix,则名称会变为 {prefix}-forward / {prefix}-backward

classNames 解释
animated-router-forward 页面前进时动画效果
animated-router-backward 页面后退时动画效果

同时,如果没有设置componnt={null}的话,AnimateRouter 将会渲染一个路由页面容器节点,该节点会有一些 className,可以用来辅助做动画定义。

容器节点 className 解释
animated-router-container 总是存在
animated-router-in-transition 路由动画进行中时存在,可以用来设置动画切换中的一些节点样式设置

转载地址:http://vybnl.baihongyu.com/

你可能感兴趣的文章
Java 多线程(三)—— 线程的生命周期及方法
查看>>
AngularJS学习总结
查看>>
MapReduce实现两表join
查看>>
怎么样去优化我们的SQL语句
查看>>
Java 代理模式(一) 静态代理
查看>>
应用缓存
查看>>
【二分答案】【最大流】bzoj1305 [CQOI2009]dance跳舞
查看>>
【AC自动机】【矩阵乘法】【等比数列】hdu2243 考研路茫茫——单词情结
查看>>
【动态规划】bzoj1270 [BeijingWc2008]雷涛的小猫
查看>>
Centos中IP与DNS手动设置方法
查看>>
ISO镜像安装UbuntuKylin 13.04 64位,启动菜单制作实例
查看>>
安装包制作工具 SetupFactory 详解
查看>>
HDU 1232 - 畅通工程
查看>>
【BZOJ】3224: Tyvj 1728 普通平衡树
查看>>
微服务之swagger
查看>>
Redis数据库
查看>>
html5 Canvas绘制图形入门详解
查看>>
ASP.NET 5中的静态文件处理
查看>>
Queue的简单实现
查看>>
js数组转字符串
查看>>