开启 keepalive 后,组件在路由跳转前重复执行了一次 useEffect
Opened this issue · 1 comments
luhc228 commented
export default function Home() {
useEffect(() => {
console.log(1); // will log twice
}, [])
}
hzyhbk commented
调试发现跟这行代码有关系 https://github.com/raxjs/rax-app/blob/master/packages/plugin-rax-router/src/runtime/KeepAliveRouter.tsx#L83 , 包了一层 Fragment 就会导致组件重新渲染。把 Fragment 换成 div 或者去掉就不会重新渲染了。