采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师这章节我有两个疑问想请教下。 老师仅仅是做了history路由的监听,如果我主框架使用hash模式的话,应该还修改window.onhashchange事件,我这里理解对吗。 还有一个问题是老师课程中路由跳转了打印了两次,也就是replacestate执行了两次。老师好像没有解决,请问下这个是bug吗。我没太看出来是哪里导致出发了两次
hash
window.onhashchange
路由跳转了
replacestate
第一个问题哈,我们是拦截了路由改变的事件,并且添加了自己的方法,所以对于hashchange的监听可以不用添加。第二个问题,触发了两次不是个bug,是因为我们在主应用里做了一次路由跳转,框架的路由和子应用里的路由跳转。后来我们做完子应用变化的判断之后就会只执行一次了。
老师第一个问题,那如果主框架是hash 模式,是不是就要监听hash 的变化。我不太明白。如果我主框架不使用history 模式,那么视频中两个事件路由切换就不会触发了是吧。 第二个问题,子应用是hash 模式的路由,应该不会触发replacestate吧…难道说hash 模式也是依赖于replacestate 吗,我记得是onhash change 事件…是我记错了嘛
老师我还是不太明白。先说第一个问题,假如我的主框架使用的hash模式那么路由改变是hash的改变,怎么还会触发onpopstate事件呢。 第二个问题,视频中触发了两次,第一次我好理解是说url变化触发了popstate事件,第二次是什么时候?老师指的是子应用中路由切换吗?子应用是hash模式啊,hash改变怎么会触发onpopstate
onpopstate是在点击返回的时候触发的,只要是经过pushstate和replacestate处理的路由在返回的时候都会触发,刚开始的时候不会触发这个事件。另外可以关注下咱们得讨论群哈。有问题可以随时在群里提问。
登录后可查看更多问答,登录/注册
专为2~5年前端工程师打造的架构能力提升课
706 16
1.4k 15
757 10
915 8
903 8