为什么会有这篇文章,原因是本人做过rn开发和react开发,发现这两者的路由机制有点不同,写了两个demo做下对比。这篇就不文字描述了,直接上repo地址:
总结两者的区别就是:
- rn当中push不会销毁组件,react则是push和goBack都会销毁组件。
- rn当中pop回某个页面时,只有props发生改变,组件才会rerender,react则是不管props发不发生改变都会rerender。
- rn当中A页面push到B,B页面pop回A,props发生改变时,componentWillReceiveProps是在A页面中被调用,而react-router同样的场景下,A页面却不会调用componentWillReceiveProps,A页面相当于是拿到了最新的数据初始render,这一点和rn很不一样。