请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

有两个疑问请教下老师

老师这章节我有两个疑问想请教下。
老师仅仅是做了history路由的监听,如果我主框架使用hash模式的话,应该还修改window.onhashchange事件,我这里理解对吗。
还有一个问题是老师课程中路由跳转了打印了两次,也就是replacestate执行了两次。老师好像没有解决,请问下这个是bug吗。我没太看出来是哪里导致出发了两次

正在回答 回答被采纳积分+3

1回答

yancy 2021-07-14 20:53:56

第一个问题哈,我们是拦截了路由改变的事件,并且添加了自己的方法,所以对于hashchange的监听可以不用添加。
第二个问题,触发了两次不是个bug,是因为我们在主应用里做了一次路由跳转,框架的路由和子应用里的路由跳转。后来我们做完子应用变化的判断之后就会只执行一次了。

0 回复 有任何疑惑可以回复我~
  • 提问者 hy_wang #1
    老师第一个问题,那如果主框架是hash 模式,是不是就要监听hash 的变化。我不太明白。如果我主框架不使用history 模式,那么视频中两个事件路由切换就不会触发了是吧。
    第二个问题,子应用是hash 模式的路由,应该不会触发replacestate吧…难道说hash 模式也是依赖于replacestate 吗,我记得是onhash change 事件…是我记错了嘛
    回复 有任何疑惑可以回复我~ 2021-07-14 21:19:03
  • 提问者 hy_wang #2
    老师我还是不太明白。先说第一个问题,假如我的主框架使用的hash模式那么路由改变是hash的改变,怎么还会触发onpopstate事件呢。
    第二个问题,视频中触发了两次,第一次我好理解是说url变化触发了popstate事件,第二次是什么时候?老师指的是子应用中路由切换吗?子应用是hash模式啊,hash改变怎么会触发onpopstate
    回复 有任何疑惑可以回复我~ 2021-07-15 00:11:22
  • yancy #3
    onpopstate是在点击返回的时候触发的,只要是经过pushstate和replacestate处理的路由在返回的时候都会触发,刚开始的时候不会触发这个事件。另外可以关注下咱们得讨论群哈。有问题可以随时在群里提问。
    回复 有任何疑惑可以回复我~ 2021-07-15 00:22:44
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信