不管是在过去的项目还是未来的项目(SPA 项目)中我们都会遇到大量的页面切换,往往伴随页面切换的时候会要求一些切换效果,如:
原理
在路由组件进入/创建时添加一个出场动画,在路由组件离开/销毁前添加一个出场动画。这样就实现了路由切换的动画效果,是不是很简单 😄
实现
光说原理,不谈实现就是耍流氓,下面使用三大框架分别实现路由切换的效果
vue
由于 vue 有transition
组件,所以 vue 中直接使用路由和transition
实现
vue 2.x
1 | <template> |
vue3.0
1 | <template> |
react
react 需要使用react-transition-group
这个库。
需要注意的是react-transition-group
与 Vue 的 transitin 在动画上有一些区别,具体来讲他们的动画名不一样。另外 react 路由在切换的时候就已经更新了。
另外 react-router 不能使用 vue-router 的自定义路由元参数,确实不好处理,我这里是简单的写到 app 中,并不算是完美的解决办法。
1 | const indexs: { [key: string]: number } = { |
1 | .child-view { |
angular
有快 2 年的时间没有写 angular 了,都要忘记 angular 了。但不的不说 angular 还是一如既往的强大,中文文档也做的很不错。参考官方文档很容易就写出来了,这里就不贴代码了,移步https://angular.cn/guide/route-animations
demo 源码
https://github.com/qietuzi/blog-demo/tree/master/SPA 页面切换动画
[越努力,越幸运!]