路由页面缓存开启 以及 keep-alive 给你埋下的坑

时间:2021-03-15 08:23:28

为什么要用keep-alive呢, 因为这个会缓存dom模板, 下次再回到这个页面, 就可以利用这个已经渲染好的dom结构了,

如果数据不一样, 也会启用 virtualDoM 进行diff更新, 这样也能节省 从 模板解析 到 html 这段时间, 不用重新再去

分析模板, 特别是地图应用, 应为地图绘制耗性能,地图一般是不变的, 只有数据发现变化

做成饼 开口 咬一下变形状 吃下去
created mounted activated deactivated

1. mounted以后就已经生成ahtml了, 如果启用了keep-alive, 就不在开口, 有新数据直接咬

所以在activate去ajax数据, 否则数据不会更新

2. 另外, 要获取路由的query数据, 也是在 active 周期去拿,并做一些赋值, 而不能像以前那样直接

在data里面获取 并赋值

this.email = this.$route.query.email

this.activeIndex = this.$route.params.activeIndex

3. 既然你缓存了html, 如何防止多次事件绑定, 触发多次问题,

解决方法是 在mounted绑定事件, 以为他只执行一次, 如果是新插入的, 可以用事件代理解决

或者在active中先解绑, 再绑定。。

http://xiangsongtao.com/article/5853b2c0044bf1353af82fbf