- 问题:现有三个页面a , b , c , 递进关系,a页面跳转至b,b再跳转至c,c使用$()回到b,然后点击b页面的返回键,需要点击两次才能回到a页面
- 需求:c保持至b方式不变,b页面返回键点击一次正常返回a页面
- 解决方法:使用replace方法之后,再使用(-1)方法返回一次就可以。
例:({name:'b'})
(-1)
- 原理:先解析一下几种页面跳转方式的不同,
- : 跳转到新的页面,向history栈添加新一个新纪录,点击返回,返回到上一级页面。
- : 打开新的页面,不会像history添加新纪录,而是直接替换掉当前记录。
- : 在history有记录的情况下,前进后退相应的页面。
页面的跳转记录就是:a->b->c->b
页面的堆栈记录则是:a->b->b
那么返回的时候路线就是b->b->a,相当于b页面有两个,但由于b页面是一模一样的,所以视觉上是觉得点了两次返回键。
那么解决的思路就很清晰了,减少history中的b的记录,就是在用b替换c页面记录同时,回退一页,记录就变成a->b,返回的时候自然是直接回到a。