解决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 代码也可以变得优美的实现方法
Jun 22 Javascript
Javascript学习笔记5 类和对象
Jan 11 Javascript
JS获取屏幕,浏览器窗口大小,网页高度宽度(实现代码)
Dec 17 Javascript
JS批量修改PS中图层名称的方法
Jan 26 Javascript
单元选择合并变色示例代码
May 26 Javascript
推荐25个超炫的jQuery网格插件
Nov 28 Javascript
jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法
Aug 08 Javascript
全面解析JavaScript的Backbone.js框架中的Router路由
May 05 Javascript
在网页中插入百度地图的步骤详解
Dec 02 Javascript
JS实现复制内容到剪贴板功能
Feb 05 Javascript
Javascript 详解封装from表单数据为json串进行ajax提交
Mar 29 Javascript
vue实现购物车加减
May 30 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数组函数序列之array_splice() - 在数组任意位置插入元素
2011/11/07 PHP
PHP实现可自定义样式的分页类
2016/03/29 PHP
浅谈PHP array_search 和 in_array 函数效率问题
2019/10/15 PHP
JScript中的"this"关键字使用方式补充材料
2007/03/08 Javascript
Javascript 调试利器 Firebug使用详解六
2009/07/05 Javascript
jQuery固定浮动侧边栏实现思路及代码
2014/09/28 Javascript
javascript实现标签切换代码示例
2016/05/22 Javascript
angular-ui-sortable实现可拖拽排序列表
2016/12/28 Javascript
Bootstrap Table从零开始
2017/06/30 Javascript
vue.js学习之vue-cli定制脚手架详解
2017/07/02 Javascript
Vuex提升学习篇
2018/01/11 Javascript
JavaScript中的E-mail 地址格式验证
2018/03/28 Javascript
浅析JS中回调函数及用法
2018/07/25 Javascript
利用hasOwnProperty给数组去重的面试题分享
2018/11/05 Javascript
jQuery 选择器用法实例分析【prev + next】
2020/05/22 jQuery
JavaScript Blob对象原理及用法详解
2020/10/14 Javascript
[48:53]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第一场
2014/05/26 DOTA
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
Python编程实现二分法和牛顿迭代法求平方根代码
2017/12/04 Python
python函数中将变量名转换成字符串实例
2020/05/11 Python
使用Python项目生成所有依赖包的清单方式
2020/07/13 Python
css3实例教程 一款纯css3实现的环形导航菜单
2014/10/20 HTML / CSS
基于canvas使用贝塞尔曲线平滑拟合折线段的方法
2018/01/10 HTML / CSS
美国体育用品在线:Modell’s Sporting Goods
2018/06/07 全球购物
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
网络安全方面的面试题
2016/01/07 面试题
税务专业毕业生自荐信
2013/11/10 职场文书
打架检讨书100字
2014/01/08 职场文书
爱我中华教学反思
2014/04/28 职场文书
2014年少先队工作总结
2014/12/03 职场文书
公司人事任命通知
2015/04/20 职场文书
工伤调解协议书
2016/03/21 职场文书
Vue项目中如何封装axios(统一管理http请求)
2021/05/02 Vue.js
基于PostgreSQL/openGauss 的分布式数据库解决方案
2021/12/06 PostgreSQL
基于PyQt5制作一个群发邮件工具
2022/04/08 Python
Redis批量生成数据的实现
2022/06/05 Redis