偶然发现,在左侧目录打开页面时,前端页面中的onMounted里面的方法被多次调用执行:
1.现象:
这个里面,有个调用后台的方法,监控后发现执行了2次。
2. 查找原因
查看多个页面后,发现排除掉页面组件重新渲染的原因,因为每个页面打开,默认执行的方法,都会执行多次。
查看目录代码,发现使用了<keep-alive>
使用此组件时,不能够正常使用onMounted,改用onActivated执行页面执行方法。
3.结果
测试后,发现执行正常,仅执行了一次。
4.问题分析
-
onMounted
– 组件挂载时调用 -
onActivated
– 被keep-alive
缓存的组件激活时调用。