解决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 相关文章推荐
Javascript实例教程(19) 使用HoTMetal(1)
Dec 23 Javascript
JScript中的"this"关键字使用方式补充材料
Mar 08 Javascript
随机显示经典句子或诗歌的javascript脚本
Aug 04 Javascript
ajax请求get与post的区别总结
Nov 04 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
May 23 Javascript
js实现简单的碰壁反弹效果
Aug 30 Javascript
jQuery Ajax请求后台数据并在前台接收
Dec 10 Javascript
利用transition实现文字上下抖动的效果
Jan 21 Javascript
JQuery 封装 Ajax 常用方法(推荐)
May 21 jQuery
JS原生瀑布流效果实现
Apr 26 Javascript
vue中的使用token的方法示例
Mar 10 Javascript
antd-mobile ListView长列表的数据更新遇到的坑
Apr 08 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
PHPMailer邮件类利用smtp.163.com发送邮件方法
2008/09/11 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
2014/07/29 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
2014/11/01 PHP
PHP实现的一致性哈希算法完整实例
2015/11/14 PHP
PHP语法小结之基础和变量
2015/11/22 PHP
PHP实现微信退款功能
2018/10/02 PHP
ArrayList类(增强版)
2007/04/04 Javascript
js对字符的验证方法汇总
2015/02/04 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
2015/09/04 Javascript
js实现文件上传表单域美化特效
2015/11/02 Javascript
JS实现Select的option上下移动的方法
2016/03/01 Javascript
JS中跨页面调用变量和函数的方法(例如a.js 和 b.js中互相调用)
2016/11/01 Javascript
WEB开发之注册页面验证码倒计时代码的实现
2016/12/15 Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
2016/12/28 Javascript
javascript滚轮事件基础实例讲解(37)
2017/02/14 Javascript
微信小程序之页面跳转和参数传递的实现
2017/09/29 Javascript
Vue 实现把表单form数据 转化成json格式的数据
2019/10/29 Javascript
浅谈es6中的元编程
2020/12/01 Javascript
[27:28]Ti4 冒泡赛第二天 iG vs NEWBEE 1
2014/07/15 DOTA
[01:07:11]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python str与repr的区别
2013/03/23 Python
Python实现在Linux系统下更改当前进程运行用户
2015/02/04 Python
Python获取单个程序CPU使用情况趋势图
2015/03/10 Python
在Python中移动目录结构的方法
2016/01/31 Python
python使用pandas实现数据分割实例代码
2018/01/25 Python
python爬虫超时的处理的实例
2018/12/19 Python
对Python的多进程锁的使用方法详解
2019/02/18 Python
Python requests设置代理的方法步骤
2020/02/23 Python
python等待10秒执行下一命令的方法
2020/07/19 Python
OpenCV+python实现膨胀和腐蚀的示例
2020/12/21 Python
毕业生应聘幼儿园的自荐信
2013/11/20 职场文书
幼儿园教师的考核评语
2014/04/18 职场文书
亲属关系公证书样本
2015/01/23 职场文书
2015年第31个教师节致辞
2015/07/31 职场文书
初中运动会闭幕词范本3篇
2019/12/09 职场文书
Python还能这么玩之用Python修改了班花的开机密码
2021/06/04 Python