解决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 相关文章推荐
硬盘浏览程序,保存成网页格式便可使用
Dec 03 Javascript
js 多种变量定义(对象直接量,数组直接量和函数直接量)
May 24 Javascript
修改jQuery Validation里默认的验证方法
Feb 14 Javascript
jquery 获取自定义属性(attr和prop)的实现代码
Jun 27 Javascript
jQuery插件实现屏蔽单个元素使用户无法点击
Apr 12 Javascript
图标线性回归斜着移动到指定的位置
Aug 16 Javascript
javascript:void(0)的问题使用探讨
Apr 10 Javascript
jQuery+Ajax实现用户名重名实时检测
Jun 01 jQuery
实例详解JSON取值(key是中文或者数字)方式
Aug 24 Javascript
微信小程序使用slider设置数据值及switch开关组件功能【附源码下载】
Dec 09 Javascript
Vue中使用Sortable的示例代码
Apr 07 Javascript
VUE页面中通过双击实现复制表格中内容的示例代码
Jun 11 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 文件状态缓存带来的问题
2008/12/14 PHP
PHP初学者常见问题集合 修正版(21问答)
2010/03/23 PHP
PHP多线程编程之管道通信实例分析
2015/03/07 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
2017/08/03 PHP
laravel migrate初学常见错误的解决方法
2017/10/11 PHP
PHP面向对象程序设计子类扩展父类(子类重新载入父类)操作详解
2019/06/14 PHP
json2.js的初步学习与了解
2011/10/06 Javascript
原生js实现给指定元素的后面追加内容
2013/04/10 Javascript
js 表单提交后按钮变灰的实例代码
2013/08/16 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
JavaScript中Cookies的相关使用教程
2015/06/04 Javascript
利用Javascript实现BMI计算器
2016/08/16 Javascript
完全深入学习Bootstrap表单
2016/11/28 Javascript
vue 路由嵌套高亮问题的解决方法
2018/05/17 Javascript
jQuery插件Validation表单验证详解
2018/05/26 jQuery
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
Vue使用axios出现options请求方法
2019/05/30 Javascript
vue路由插件之vue-route
2019/06/13 Javascript
vue+elementUI 复杂表单的验证、数据提交方案问题
2019/06/24 Javascript
Vue分页器实现原理详解
2019/06/28 Javascript
利用d3.js制作连线动画图与编辑器的方法实例
2019/09/05 Javascript
[43:03]完美世界DOTA2联赛PWL S2 PXG vs Magma 第二场 11.21
2020/11/24 DOTA
Python表示矩阵的方法分析
2017/05/26 Python
Python中表示字符串的三种方法
2017/09/06 Python
python探索之BaseHTTPServer-实现Web服务器介绍
2017/10/28 Python
Python3 伪装浏览器的方法示例
2017/11/23 Python
Python打印“菱形”星号代码方法
2018/02/05 Python
Django中的用户身份验证示例详解
2019/08/07 Python
详解Django-channels 实现WebSocket实例
2019/08/22 Python
opencv之为图像添加边界的方法示例
2019/12/26 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
以实惠的价格提供高品质的时尚:Newchic
2018/01/18 全球购物
SmartBuyGlasses意大利:购买太阳镜、眼镜和隐形眼镜
2018/11/20 全球购物
小学生评语大全
2014/04/18 职场文书
一篇文章看懂MySQL主从复制与读写分离
2021/11/07 MySQL
Java设计模式之享元模式示例详解
2022/03/03 Java/Android