如何避免Vue项目中mounted函数在F5刷新后不触发的问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计833个文字,预计阅读时间需要4分钟。
项目背景+在主文件index.vue中初始化页面相关操作,+在mounted中设置用户权限判断并更新store中的权限值,+当点击相应组件时mounted可正常工作,+但用户手动刷新时mounted内的函数未执行。
项目背景
在主文件index.vue中初始化页面相关的操作,
在mounted中放置用户权限判断并更新store中的权限值,当点击相应组件时mounted可正常工作,
但是在用户手动刷新时mounted内的函数并未执行,导致相应组件未获取到权限而显示异常
问题解决
首先,这跟vue生命周期有关,图就不贴了,直接说原因。
当用户f5刷新页面时,整个页面会重新去请求,js的状态变量消失,但是el节点并未重新建立。
因为,mounted是el被新创建的vm.$el替换,并挂载到实例上去之后调用的钩子,此处el并未重新挂载,故该钩子函数不会被调用。
本文共计833个文字,预计阅读时间需要4分钟。
项目背景+在主文件index.vue中初始化页面相关操作,+在mounted中设置用户权限判断并更新store中的权限值,+当点击相应组件时mounted可正常工作,+但用户手动刷新时mounted内的函数未执行。
项目背景
在主文件index.vue中初始化页面相关的操作,
在mounted中放置用户权限判断并更新store中的权限值,当点击相应组件时mounted可正常工作,
但是在用户手动刷新时mounted内的函数并未执行,导致相应组件未获取到权限而显示异常
问题解决
首先,这跟vue生命周期有关,图就不贴了,直接说原因。
当用户f5刷新页面时,整个页面会重新去请求,js的状态变量消失,但是el节点并未重新建立。
因为,mounted是el被新创建的vm.$el替换,并挂载到实例上去之后调用的钩子,此处el并未重新挂载,故该钩子函数不会被调用。

