routes指路由栈。
- A跳转至B,然后跳转至C, routes = [A, B, C]
- C返回至B,C从栈中移除,B从缓存中恢复,routes = [A, B]
- B返回至A,B从栈中移除,A从缓存中恢复,routes = [A]
- A跳转至B,B重新创建,不从缓存中恢复,routes = [A, B];
- A跳转至B,然后又跳转至 A,routes = [A, B, A]。两个A是不同的实例,可以拥有不同的状态;
- A返回至B,B从缓存中恢复,routes = [A, B, A];
- B返回至A,routes = [A]
- 当前是D界面,D进入A,routes = [D, A]
- A激活B,B激活C,routes = [D, [A, B, C]], 被激活的界面如果在当前激活栈(当前是[A, B, C])中存在那就直接从栈中恢复,不存在就创建
- C激活B, routes = [D, [A, C, B]], 栈顶是当前被激活的界面。
- B进入E,routes = [D, [A, C, B], E]
- E返回, routes = [D, [A, C, B]]
- 再返回 [D]