解决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判断DOM何时加载完毕的技巧
Nov 11 Javascript
Js+Flash实现访问剪切板操作
Nov 20 Javascript
Jquery中ajax方法data参数的用法小结
Feb 12 Javascript
js 弹出新页面避免被浏览器、ad拦截的一种新方法
Apr 30 Javascript
jQuery中animate用法实例分析
Mar 09 Javascript
JQuery操作textarea,input,select,checkbox方法
Sep 02 Javascript
JavaScript各类型的关系图解
Oct 16 Javascript
vue中渐进过渡效果实现
Oct 27 Javascript
jQuery插件fullPage.js实现全屏滚动效果
Dec 02 Javascript
json数据处理及数据绑定
Jan 25 Javascript
详解angular ui-grid之过滤器设置
Jun 07 Javascript
使用js原生实现年份轮播选择效果实例
Jan 12 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设计聊天室步步通
2006/10/09 PHP
解析func_num_args与func_get_args函数的使用
2013/06/24 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
2015/10/10 PHP
详解Yii2.0使用AR联表查询实例
2017/06/16 PHP
PHP实现腾讯与百度坐标转换
2017/08/05 PHP
微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解
2019/04/10 PHP
CL vs ForZe BO5 第五场 2.13
2021/03/10 DOTA
在JavaScript中获取请求的URL参数
2010/12/22 Javascript
使用JS CSS去除IE链接虚线框的三种方法
2013/11/14 Javascript
js加入收藏以及使用Jquery更改透明度
2014/01/26 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
原生js模拟淘宝购物车项目实战
2015/11/18 Javascript
详解NodeJs支付宝移动支付签名及验签
2017/01/06 NodeJs
jQuery插件jqGrid动态获取列和列字段的方法
2017/03/03 Javascript
详解vue.js 开发环境搭建最简单攻略
2017/06/12 Javascript
js实现城市级联菜单的2种方法
2017/06/23 Javascript
JavaScript多态与封装实例分析
2018/07/27 Javascript
使用pm2部署node生产环境的方法步骤
2019/03/09 Javascript
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
[37:22]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第一局
2016/02/28 DOTA
Go语言基于Socket编写服务器端与客户端通信的实例
2016/02/19 Python
如何基于Python + requests实现发送HTTP请求
2020/01/13 Python
解决python对齐错误的方法
2020/07/16 Python
python 监控服务器是否有人远程登录(详细思路+代码)
2020/12/18 Python
全球速卖通西班牙站:AliExpress西班牙
2017/10/30 全球购物
MADE荷兰:提供原创设计师家具
2018/04/03 全球购物
简述synchronized和java.util.concurrent.locks.Lock的异同
2014/12/08 面试题
系统管理员的职责包括那些?管理的对象是什么?
2013/01/18 面试题
涉外经济法专业毕业生推荐信
2013/11/24 职场文书
秘书专业自荐信范文
2013/12/26 职场文书
DIY手工制作经营店创业计划书
2014/02/01 职场文书
总经理司机职责
2014/02/02 职场文书
文化活动实施方案
2014/03/28 职场文书
跳高加油稿
2015/07/21 职场文书
详解MindSpore自定义模型损失函数
2021/06/30 Python
python基础之函数的定义和调用
2021/10/24 Python