解决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 相关文章推荐
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
Jun 26 Javascript
Fastest way to build an HTML string(拼装html字符串的最快方法)
Aug 20 Javascript
容易被忽略的JS脚本特性
Sep 13 Javascript
基于jquery实现控制经纬度显示地图与卫星
May 20 Javascript
一个简单的瀑布流效果(主体形式自写)
May 27 Javascript
node.js中的fs.lchown方法使用说明
Dec 16 Javascript
Bootstrap每天必学之附加导航(Affix)插件
Apr 25 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
Jul 12 Javascript
Angular.JS判断复选框checkbox是否选中并实时显示
Nov 30 Javascript
VueJs组件prop验证简单介绍
Sep 12 Javascript
javaScript实现复选框全选反选事件详解
Nov 20 Javascript
Angular异步变同步处理方法
Aug 13 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的计数器程序
2006/10/09 PHP
php下的权限算法的实现
2007/04/28 PHP
phpMyAdmin下载、安装和使用入门教程
2007/05/31 PHP
php添加文章时生成静态HTML文章的实现代码
2013/02/17 PHP
PHP中如何实现常用邮箱的基本判断
2014/01/07 PHP
php使用递归函数实现数字累加的方法
2015/03/16 PHP
超详细的php用户注册页面填写信息完整实例(附源码)
2015/11/17 PHP
Yaf框架封装的MySQL数据库操作示例
2019/03/06 PHP
在 IE 中调用 javascript 打开 Excel 表
2006/12/21 Javascript
String.prototype实现的一些javascript函数介绍
2013/11/22 Javascript
jQuery实现动态添加和删除一个div
2015/08/12 Javascript
this.$toast() 了解一下?
2019/04/18 Javascript
微信小程序如何加载数据库真实数据的实现
2020/03/04 Javascript
JS深入学习之数组对象排序操作示例
2020/05/01 Javascript
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
[03:18]DOTA2亚洲邀请赛小组赛第一日 RECAP赛事回顾
2015/01/30 DOTA
python获取本机外网ip的方法
2015/04/15 Python
python实现带声音的摩斯码翻译实现方法
2015/05/20 Python
Python简单实现控制电脑的方法
2018/01/22 Python
Python利用splinter实现浏览器自动化操作方法
2018/05/11 Python
Python3基于sax解析xml操作示例
2018/05/22 Python
使用CodeMirror实现Python3在线编辑器的示例代码
2019/01/14 Python
python 中pyqt5 树节点点击实现多窗口切换问题
2019/07/04 Python
简单了解django orm中介模型
2019/07/30 Python
Pyinstaller 打包exe教程及问题解决
2019/08/16 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
2020/03/18 Python
意大利高端时尚买手店:Stefania Mode
2018/03/01 全球购物
Cinque网上商店:德国服装品牌
2019/03/17 全球购物
是否有自动比较结构的方法
2015/06/03 面试题
英语系本科生个人求职信
2013/09/21 职场文书
村捐赠仪式答谢词
2014/01/21 职场文书
培训自我鉴定
2014/01/31 职场文书
货物运输服务质量承诺书
2014/05/29 职场文书
南京市纪委监察局整改方案
2014/09/16 职场文书
贵阳市党的群众路线教育实践活动党(工)委领导班子整改方案
2014/10/26 职场文书
董事长助理岗位职责
2015/02/11 职场文书