react-navigation VS react-router

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