解决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 相关文章推荐
为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
Nov 24 Javascript
用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
Jun 22 Javascript
jQuery中wrapInner()方法用法实例
Jan 16 Javascript
JQuery+Ajax实现数据查询、排序和分页功能
Sep 27 Javascript
JavaScript中的原型prototype完全解析
May 10 Javascript
js实现百度登录框鼠标拖拽效果
Mar 07 Javascript
解决VUEX刷新的时候出现数据消失
Jul 03 Javascript
jQuery实现遍历XML节点和属性的方法示例
Apr 29 jQuery
node中间层实现文件上传功能
Jun 11 Javascript
vue使用laydate时间插件的方法
Nov 14 Javascript
vue权限管理系统的实现代码
Jan 17 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
May 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
简单实用的.net DataTable导出Execl
2013/10/28 PHP
PHP、Python和Javascript的装饰器模式对比
2015/02/03 PHP
PHP时间处理类操作示例
2018/09/05 PHP
阿里对象存储OSS在laravel框架中的使用方法
2019/10/13 PHP
类似CSDN图片切换效果脚本
2009/09/17 Javascript
JavaScript 对象模型 执行模型
2009/12/06 Javascript
JavaScript 用cloneNode方法克隆节点的代码
2012/10/15 Javascript
jquery模拟进度条实现方法
2015/08/03 Javascript
js实现的早期滑动门菜单效果代码
2015/08/27 Javascript
js鼠标点击按钮切换图片-图片自动切换-点击左右按钮切换特效代码
2015/09/02 Javascript
JS实现日期时间动态显示的方法
2015/12/07 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
Jquery 整理元素选取、常用方法一览表
2016/11/26 Javascript
简单实现bootstrap选项卡效果
2017/02/08 Javascript
微信小程序中显示倒计时代码实例
2019/05/09 Javascript
JS/CSS实现字符串单词首字母大写功能
2019/09/03 Javascript
微信小程序request请求封装,验签代码实例
2019/12/04 Javascript
Vue自定义组件的四种方式示例详解
2020/02/28 Javascript
js this 绑定机制深入详解
2020/04/30 Javascript
vue 获取元素额外生成的data-v-xxx操作
2020/09/09 Javascript
[07:03]显微镜下的DOTA2第九期——430圣堂刺客杀戮秀
2014/06/20 DOTA
Python SQLite3数据库日期与时间常见函数用法分析
2017/08/14 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
2017/12/11 Python
flask中使用蓝图将路由分开写在不同文件实例解析
2018/01/19 Python
一条命令解决mac版本python IDLE不能输入中文问题
2018/05/15 Python
使用Python读取二进制文件的实例讲解
2018/07/09 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
简单了解django文件下载方式
2020/02/10 Python
css3中用animation的steps属性制作帧动画
2019/04/25 HTML / CSS
耐克巴西官方网站:Nike巴西
2016/08/14 全球购物
加拿大廉价机票预订网站:CheapOair.ca
2018/03/04 全球购物
保密承诺书范文
2014/03/27 职场文书
先进典型发言材料
2014/12/30 职场文书
2015年秋季学校开学标语
2015/07/16 职场文书
解决Jupyter-notebook不弹出默认浏览器的问题
2021/03/30 Python
SQL Server使用导出向导功能
2022/04/08 SQL Server