我喜欢ionic
的视图缓存功能。如果视图已缓存,当导航到其他路径,然后返回时,缓存的视图的控制器将不再初始化。
近年来,我使用了facebook的react
。太棒了。
如果您导航到其他路线并返回,我发现容器组件将再次触发生命周期componentDidMount
。
好的,您可以控制是否在redux数据缓存的componentDidMount基础上发送ajax。您也可以通过shouldComponentUpdate来控制组件是否重新渲染。
但是我想到了一个问题。我认为缓存视图哪些意义缓存数据并查看组件不会触发任何生命周期方法的含义。这听起来像是一个视图显示或隐藏。
那么,是否有必要为反应容器组件(如离子视图缓存)实现视图缓存功能?
P.S 任何人都可以通过正确的英语XD帮助我正确编辑我的问题,谢谢!
答案 0 :(得分:0)
在父级的渲染输出上执行基础组件实例生命周期。如果Parent
组件每次呈现时都返回<Child>
组件,则React将使相同的Child
实例保持活动状态。如果Parent
停止呈现<Child>
,则React将卸载并销毁Child
实例。
因此,如果您希望保持相同的组件实例处于活动状态,则需要继续将其从父级渲染,并在相同的输出结构中进行渲染。
有关详细信息,请参阅React docs on the "reconciliation algorithm"。