在我的React应用程序中,我有这个:
-
如果从
/
索引路径开始,将出现一个启动页面,您可以单击关闭启动并转到主页的内容 . -
如果从任何其他路径开始,则不会显示启动页面,当您从这些页面转到
/
路径时,启动页面仍然不会出现 .
在这两种情况下,我想在主页发生后初始化一些 window
事件监听器(即在您单击启动页面之后或从另一个页面导航到索引页面之后) .
目前,我实现这一点的方法是在Redux中保留一个 loadState
变量 .
-
如果我从
/
路线开始,单击启动页面会将loadState
设置为"loaded",并且会在componentWillUpdate
生命周期内设置侦听器 . -
如果我从任何其他路线开始,在
componentDidMount
上,loadState
将设置为"loaded" . 然后,如果我导航到/
路由,则会在componentDidMount
上设置侦听器,因为我们检查loadState
是否"loaded."
但是,我是一种避免这两种功能的方法 . 如果 componentWillUpdate
在初始渲染上运行,那将是理想的,因为我可以避免在 componentWillMount
生命周期内进行冗余检查 . 如果React Router具有最初呈现路径的内置生命周期,则更好的选择 .