解决vue项目F5刷新mounted里的函数不执行问题


Posted in Javascript onNovember 05, 2019

项目背景

在主文件index.vue中初始化页面相关的操作,

在mounted中放置用户权限判断并更新store中的权限值,当点击相应组件时mounted可正常工作,

但是在用户手动刷新时mounted内的函数并未执行,导致相应组件未获取到权限而显示异常

问题解决

首先,这跟vue生命周期有关,图就不贴了,直接说原因。

当用户f5刷新页面时,整个页面会重新去请求,js的状态变量消失,但是el节点并未重新建立。

因为,mounted是el被新创建的vm.$el替换,并挂载到实例上去之后调用的钩子,此处el并未重新挂载,故该钩子函数不会被调用。

此处可以将用户权限判断的方法根据实际情况写在beforeMount或created中

常见的钩子触发事件

beforeCreate

在实例初始化之后,数据观测(data observer) 和 event/watcher 事件配置之前被调用。数据和实例都不能访问

created

实例已经创建完成之后被调用。在这一步,实例已完成以下的配置:数据观测(data observer),属性和方法的运算, watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见。

数据可以访问,实例不可访问

beforeMount

在挂载开始之前被调用:相关的 render 函数首次被调用。

DOM挂载前,数据可访问,实例$el为虚拟DOM节点,不可访问,数据还未插入DOM中

mounted

el 被新创建的 vm.el替换,并挂载到实例上去之后调用该钩子。此时 el 替换,并挂载到实例上去之后调用该钩子。此时el替换,并挂载到实例上去之后调用该钩子。此时el为真实的DOM元素

beforeUpdate

数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。 你可以在这个钩子中进一步地更改状态,这不会触发附加的重渲染过程。

updated

数据更新之后。

由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。

当这个钩子被调用时,组件 DOM 已经更新,所以你现在可以执行依赖于 DOM 的操作。然而在大多数情况下,你应该避免在此期间更改状态,因为这可能会导致更新无限循环。

该钩子在服务器端渲染期间不被调用。

beforeDestroy

实例销毁之前调用。此时实例还可以使用

destroyed

Vue 实例销毁后调用。此时Vue实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。 该钩子在服务器端渲染期间不被调用。

以上这篇解决vue项目F5刷新mounted里的函数不执行问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
支持ie与FireFox的剪切板操作代码
Sep 28 Javascript
jQuery实现的Email中的收件人效果(按del键删除)
Mar 20 Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
Jun 11 Javascript
用jquery模仿的a的title属性(兼容ie6/7)
Jan 21 Javascript
探讨JavaScript中声明全局变量三种方式的异同
Dec 03 Javascript
jquery链式操作的正确使用方法
Jan 06 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
Aug 07 Javascript
Node.js环境下编写爬虫爬取维基百科内容的实例分享
Jun 12 Javascript
JS打印组合功能
Aug 04 Javascript
vue-resourse将json数据输出实例
Mar 08 Javascript
javascript的this关键字详解
May 20 Javascript
JavaScript前后端JSON使用方法教程
Nov 23 Javascript
vue input标签通用指令校验的实现
Nov 05 #Javascript
vue子传父关于.sync与$emit的实现
Nov 05 #Javascript
vue 路由子组件created和mounted不起作用的解决方法
Nov 05 #Javascript
vue跳转同一个组件,参数不同,页面接收值只接收一次的解决方法
Nov 05 #Javascript
vue Tab切换以及缓存页面处理的几种方式
Nov 05 #Javascript
vue动态路由:路由参数改变,视图不更新问题的解决
Nov 05 #Javascript
vue 解决路由只变化参数页面组件不更新问题
Nov 05 #Javascript
You might like
PHP迭代与递归实现无限级分类
2017/08/28 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
Ubuntu上安装yaf扩展的方法
2018/01/29 PHP
laravel添加前台跳转成功页面示例
2019/10/22 PHP
说明你的Javascript技术很烂的五个原因
2011/04/26 Javascript
css值转换成数值请抛弃parseInt
2011/10/24 Javascript
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
javascript白色简洁计算器
2015/05/04 Javascript
JS实现弹出居中的模式窗口示例
2016/06/20 Javascript
JS不完全国际化&本地化手册 之 理论篇
2016/09/27 Javascript
最原始的jQuery注册验证方式
2016/10/11 Javascript
JavaScript观察者模式(publish/subscribe)原理与实现方法
2017/03/30 Javascript
vue动态生成dom并且自动绑定事件
2017/04/19 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
Webpack常见静态资源处理-模块加载器(Loaders)+ExtractTextPlugin插件
2017/06/29 Javascript
轻量级JS Cookie插件js-cookie的使用方法
2018/03/22 Javascript
Vue中使用sass实现换肤功能
2018/09/07 Javascript
详解如何提升JSON.stringify()的性能
2019/06/12 Javascript
vue路由传参页面刷新参数丢失问题解决方案
2019/10/08 Javascript
Python的Django框架中的select_related函数对QuerySet 查询的优化
2015/04/01 Python
python实现数值积分的Simpson方法实例分析
2015/06/05 Python
Python中最大递归深度值的探讨
2019/03/05 Python
Python中实现输入超时及如何通过变量获取变量名
2020/01/18 Python
工厂厂长岗位职责
2013/11/08 职场文书
高三自我评价
2014/02/01 职场文书
房地产营销策划方案
2014/02/08 职场文书
义务教育学校标准化建设汇报材料
2014/08/16 职场文书
群众路线教育实践活动对照检查材料思想汇报(副处级领导)
2014/10/04 职场文书
三好学生事迹材料
2014/12/24 职场文书
2015小学五年级班主任工作总结
2015/05/21 职场文书
民间借贷纠纷案件代理词
2015/05/26 职场文书
退休教师欢送会致辞
2015/07/31 职场文书
怎样写好演讲稿题目?
2019/08/21 职场文书
golang定时器
2022/04/14 Golang
超越Nginx的Web服务器caddy优雅用法
2022/06/21 Servers
前端传参数进行Mybatis调用mysql存储过程执行返回值详解
2022/08/14 MySQL