raxjs/rax-app

开启 keepalive 后,组件在路由跳转前重复执行了一次 useEffect

Opened this issue · 1 comments

export default function Home() {
  useEffect(() => {
    console.log(1);         // will log twice
  }, [])
}

调试发现跟这行代码有关系 https://github.com/raxjs/rax-app/blob/master/packages/plugin-rax-router/src/runtime/KeepAliveRouter.tsx#L83 , 包了一层 Fragment 就会导致组件重新渲染。把 Fragment 换成 div 或者去掉就不会重新渲染了。