解决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 相关文章推荐
JS延迟加载(setTimeout) JS最后加载
Jul 15 Javascript
JQUERY实现左侧TIPS滑进滑出效果示例
Jun 27 Javascript
JS取文本框中最小值的简单实例
Nov 29 Javascript
javascript实现json页面分页实例代码
Feb 20 Javascript
easyUI实现类似搜索框关键词自动提示功能示例代码
Dec 27 Javascript
jQuery Password Validation密码验证
Dec 30 Javascript
html+javascript+bootstrap实现层级多选框全层全选和多选功能
Mar 09 Javascript
JavaScript中的FileReader图片预览上传功能实现代码
Jul 24 Javascript
vue项目使用微信公众号支付总结及遇到的坑
Oct 23 Javascript
详解如何快速配置webpack多入口脚手架
Dec 28 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
May 09 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下编码转换函数mb_convert_encoding与iconv的使用说明
2009/12/16 PHP
PHP clearstatcache()函数详解
2010/03/02 PHP
PHP输入流php://input介绍
2012/09/18 PHP
php使用APC实现实时上传进度条功能
2015/10/26 PHP
PHP图片添加水印功能示例小结
2016/10/03 PHP
PHP之十六个魔术方法详细介绍
2016/11/01 PHP
javascript知识点收藏
2007/02/22 Javascript
JavaScript面向对象之体会[总结]
2008/11/13 Javascript
setTimeout 不断吐食CPU的问题分析
2009/04/01 Javascript
异步加载script的代码
2011/01/12 Javascript
js判断FCKeditor内容是否为空的两种形式
2013/05/14 Javascript
jQuery的显示和隐藏方法与css隐藏的样式对比
2013/10/18 Javascript
引入JS文件IE6报语法错误或缺少对象问题的解决方法
2014/01/09 Javascript
使用js实现一个可编辑的select下拉列表
2014/02/20 Javascript
JavaScript版的TwoQueues缓存模型
2014/12/29 Javascript
js+html5绘制图片到canvas的方法
2015/06/05 Javascript
js实现select二级联动下拉菜单
2020/04/17 Javascript
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
AngularJS $http post 传递参数数据的方法
2018/10/09 Javascript
[56:13]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第一场 1月10日
2021/03/11 DOTA
Eclipse + Python 的安装与配置流程
2013/03/05 Python
python在windows下实现ping操作并接收返回信息的方法
2015/03/20 Python
python任务调度实例分析
2015/05/19 Python
python微信跳一跳系列之自动计算跳一跳距离
2018/02/26 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
使用html5 canvas创建太空游戏的示例
2014/05/08 HTML / CSS
canvas实现高阶贝塞尔曲线(N阶贝塞尔曲线生成器)
2018/01/10 HTML / CSS
使用html5新特性轻松监听任何App自带返回键的示例
2018/03/13 HTML / CSS
意大利比基尼品牌:MISS BIKINI
2019/11/02 全球购物
Cecil Mode法国在线商店:女性时尚
2021/01/08 全球购物
《夕阳真美》教学反思
2014/04/27 职场文书
护士感人事迹
2014/05/01 职场文书
二年级语文上册复习计划
2015/01/19 职场文书
网上祭英烈活动总结
2015/02/04 职场文书
2016学习全国教书育人楷模先进事迹心得体会
2016/01/21 职场文书
英国数字版游戏销量周榜公布 《小缇娜的奇幻之地》登顶
2022/04/03 其他游戏