@4.3.1 : react自家路由
react@16.4.2
----
问题有三,亦能解决
组件堆叠问题..就是再次进入路由切换的时候,之前的元素还没有消失,而新的组件渲染了,同时出现
堆叠问题...,只能用脱离文档流来解决,所以用position:absolute来负责渲染区域即可
注意父层需要position:relative, 不然会一直往上找相对位置,实在找不到会相对窗口
点击侧边栏,组件一直重复渲染的问题...一开始想的是去子组件区域,用shouldComponentUpdate来判断URL然后阻止渲染,发现不可行
因为过渡外部用的location.key是随机性的,所以组件每次都会重新渲染
最终的解决方案...,是改掉了侧边栏的Link组件,直接用事件绑定(history.push来跳转),完美
随机切换效果
这个结合CSSTransition的特性,因为location.key是随机性的,不同值都会走一遍...(包括随机)
import React, { Component } from 'react';
import { TransitionGroup, CSSTransition } from 'react-transition-group