解决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 相关文章推荐
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
Dec 02 Javascript
原生js实现改变随意改变div属性style的名称和值的结果
Sep 26 Javascript
JavaScript根据CSS的Media Queries来判断浏览设备的方法
May 10 Javascript
jQuery实现页面点击后退弹出提示框的方法
Aug 24 Javascript
vue2.0+webpack环境的构造过程
Nov 08 Javascript
使用webpack3.0配置webpack-dev-server教程
May 29 Javascript
js实现左右两侧浮动广告
Jul 09 Javascript
微信小程序显示倒计时功能示例【测试可用】
Dec 03 Javascript
vue 解决文本框被键盘遮住的问题
Nov 06 Javascript
Vue基于iview实现登录密码的显示与隐藏功能
Mar 06 Javascript
vue a标签点击实现赋值方式
Sep 07 Javascript
vue-router定义元信息meta操作
Dec 07 Vue.js
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 版获取重定向后的地址(代码)
2013/06/26 PHP
PHP同时连接多个mysql数据库示例代码
2014/03/17 PHP
php实现的PDO异常处理操作分析
2018/12/27 PHP
PHP时间类完整代码实例
2021/02/26 PHP
JS保留两位小数,多位小数的示例代码
2014/01/07 Javascript
Nodejs为什么选择javascript为载体语言
2015/01/13 NodeJs
JQUERY实现网页右下角固定位置展开关闭特效的方法
2015/07/27 Javascript
js实现当前输入框高亮显示的方法
2015/08/19 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
2015/11/24 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
利用Node.js制作爬取大众点评的爬虫
2016/09/22 Javascript
学习Node.js模块机制
2016/10/17 Javascript
Vue 进阶教程之v-model详解
2017/05/06 Javascript
JavaScript+Canvas实现彩色图片转换成黑白图片的方法分析
2018/07/31 Javascript
webpack4 + react 搭建多页面应用示例
2018/08/03 Javascript
node app 打包工具pkg的具体使用
2019/01/17 Javascript
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
Node.js 在本地生成日志文件的方法
2020/02/07 Javascript
Python生成器定义与简单用法实例分析
2018/04/30 Python
Python定时任务APScheduler的实例实例详解
2019/07/22 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
2020/04/13 Python
html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点
2013/01/09 HTML / CSS
网站性能延迟加载图像的五种技巧(小结)
2020/08/13 HTML / CSS
印尼太阳百货公司网站:Matahari
2018/02/04 全球购物
澳大利高级泳装品牌:Bondi Born
2018/05/23 全球购物
请写出一段Python代码实现删除一个list里面的重复元素
2015/12/29 面试题
机电专业体育教师求职信
2013/09/21 职场文书
中秋节礼品促销方案
2014/02/02 职场文书
大学生职业生涯规划大赛作品(精品)
2014/09/17 职场文书
校园广播稿100字
2014/10/06 职场文书
员工家属慰问信
2015/03/24 职场文书
项目经理岗位职责范本
2015/04/01 职场文书
党员违纪检讨书
2015/05/05 职场文书
同学聚会致辞集锦
2015/07/28 职场文书
Python pygame实现中国象棋单机版源码
2021/06/20 Python
一篇文章弄清楚Ajax请求的五个步骤
2022/03/17 Javascript