逛了一圈论坛,发现都是复制粘贴的,好多都是用 sessionStorage 做的。
参考帖子:sessionStorage 实现 点击导航不失色
当时我也是按这种方法做的,做的时候没问题,到测试时候问题就大了。
首先出现的问题就是,在页面比较多的情况你得在跳转的同时存上这个状态,比如 A 页面有 1 2 3 导航,你点 1 导航进入 B 页面。这时候没问题。
因为你在 A 页面时候已经存了一个 1 的状态,所以从 B 页面跳回 A 时, 1 是没问题的。
但是,你从 B 页面跳到 C D F G 页面时候,经过了多重路由跳转,最终到了 G 页面,但是需求时 G 页面有个按钮是跳回 A 页面的 2 导航的。
这时候你人还没傻掉,你想着,欸,那我在每个跳转的时候在存下状态不就行了嘛,麻烦是麻烦点,但也能实现最终的目标呀。我当时也是这么想的,实在是 Too Young Too Simple。
为什么呢,因为你页面上的按钮确实都没有问题了,但是页面外的会出问题啊,用户看页面是用的浏览器的,浏览器最左上面的是什么? 是 前进 后退 啊喂,请问点这两个按钮的时候你怎么保存状态,大E了有没有,人都傻了,只能全部改掉了。
哦对了,这种方案你自己电脑运行没毛病,你在 B 页面时候把 B 页面分享给你的好基友,你好基友从B 页面返回 A 时候就会发现,哦豁,怎么没有导航激活的状态了?嗯?嗯ÿ