Vue 项目中的错误如何处理的?
1、 组件中的处理:使用 errorCaptured 钩子
作用:可以捕获来自后代组件的错误
父组件(errorCaptured) -> 子组件 (errorCaptured) -> 当孙子组件出错时,错误会一直向上抛,也就是先触发子组件的 errorCaptured,然后触发父组件的 errorCaptured。如果 errorCaptured 中返回 false 则会阻断传播。
原理:Vue底层源码会在很多地方都做了错误处理,例如在渲染的时候出错或者数据初始化的时候出错都会触发handleError方法,传入错误信息和实例等;再判断父组件上是否有 errorCaptured 属性,有的话拿到这个钩子便执行;判断当前钩子的返回值是否为false,为false的话就终止向上传播;
如果全局的 config.errorHandler 被定义,所有的错误仍会发送它,因此这些错误仍然会向单一的分析服务的地方进行汇报。
2、全局处理:设置错误处理 errorHandler
如果在组件渲染时出现运行错误,错误将会被传递至全局 Vue.config.errorHandler 配置函数。
Vue.config.errorHandler = (err, vm, info) => {console.log(err, vm, info);
}
底层原理:每次捕获到错误之后,除了调用上级组件的 errorCaptured 之外呢,还会命中 globalHandleError方法,这个就是全局错误处理方法。将错误传到全局错误处理这里。
如果子组件返回了false,这里的全局设置也会捕获不到错误。
3、接口异常处理:响应拦截
在拦截器中对状态码进行拦截;
instance.interceptors.response.use((res) => {return res.data;},(err) => {let res = err.response;if (res.status >= 400) {handleError(response); // 统一处理接口异常}return Promise.reject(error);}
);
收集到错误后,提交到前端监控系统中,这样我们可以分析前端代码的异常信息啦~~
相关文章:
Vue 项目中的错误如何处理的?
1、 组件中的处理:使用 errorCaptured 钩子 作用:可以捕获来自后代组件的错误 父组件(errorCaptured) -> 子组件 (errorCaptured) -> 当孙子组件出错时,错误会一直向上抛,也就是先触发子组件的 errorCaptured,…...
网络分层的真实含义
复杂的程序都要分层,这是程序设计的要求。比如,复杂的电商还会分数据库层、缓存层、Compose 层、Controller 层和接入层,每一层专注做本层的事情。 当一个网络包从一个网口经过的时候,你看到了,首先先看看要不要请进来…...
RT-Thread 线程间同步
线程间同步 在多线程实时系统中,一项工作的完成往往可以通过多个线程协调的方式共同来完成,那么多个线程之间如何 “默契” 协作才能使这项工作无差错执行?下面举个例子说明。 例如一项工作中的两个线程:一个线程从传感器中接收…...
Python元类再解释
Python元类再解释 元类是什么? 你可以把元类看作是“生产类的工厂”。就像类是用来生产对象的,元类是用来生产类的。 为什么需要元类? 考虑一个场景:假设你正在编写一个框架,你希望框架中的所有类都有某些特定的方…...
常用的Spring Boot 注解及示例代码
简介:Spring Boot 是一个用于快速构建基于 Spring 框架的应用程序的工具,通过提供一系列的注解,它使得开发者可以更加轻松地配置、管理和控制应用程序的各种行为。以下是一些常用的 Spring Boot 注解,以及它们的功能和示例代码&am…...
react app教程
react app教程 环境准备 下载node 下载npx npm install npx创建app npx create-react-app automedia cd automedia npm start构建发布版本 npm run build安装调试工具 # .vscode/launch.json {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了…...
在vue项目中用vue-watermark快捷开发屏幕水印效果
我们先引入一个第三方依赖 npm install vue-watermark然后 因为这只是个测试工具 我就直接代码写 App.vue里啦 参考代码如下 <template><div><vue-watermark :text"watermarkText"></vue-watermark><!-- 正常的页面内容 --></div…...
无涯教程-Android - Activity
Activity代表具有用户界面的单个屏幕,就像Java的窗口或框架一样。Android Activity 是ContextThemeWrapper类的子类。 如果您使用过C,C或Java编程语言,那么您一定已经看到您的程序从 main()函数开始。与之非常相似,Android系统以 …...
vue项目前端展示数学公式(在表格中渲染)
现有需求为 将实验数据录入表格中,需要表格呈现物理公式,使用Mathjax在vue2中 进行呈现 1.安装 npm i --save mathjax-vue 2.全局注册(main.js中) import MathJax, { initMathJax, renderByMathjax } from mathjax-vuefunction onMathJaxReady() {const el document.getEl…...
java八股文面试[数据库]——MySQL索引的数据结构
知识点: 【2023年面试】mysql索引的基本原理_哔哩哔哩_bilibili 【2023年面试】mysql索引结构有哪些,各自的优劣是什么_哔哩哔哩_bilibili...
python3.11教程2:基础数据类型(数字和字符串)、组合数据类型(集合、元组、列表、字典)
文章目录 五、基本数据类型5.1 整数和浮点数5.1.1 整数和浮点数的类型5.1.2 进制和进制转换5.1.3 round函数 5.2 运算符5.2.1 常用运算符、运算符函数和逻辑运算符5.2.2 位运算符5.2.3 运算符的优先级及其进阶使用 5.3 布尔类型5.4 字符串5.3.1 字符串的基本操作5.3.2 字符串函…...
剑指 Offer 44. 数字序列中某一位的数字(中等)
题目: class Solution { //本题单纯找规律,要注意通过n%digits来判断有几个位数为digits的数 public:int findNthDigit(int n) {long base 9, digits 1; //digits代表位数while(n-base*digits>0){ //该循环是为了确定目标数字所在…...
SpringBoot中HttpClient的学习
一、介绍 HttpClient是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包。 HttpClient 是一个HTTP通信库、一个工具包,它只提供一个通用浏览器应用程序所期望的功能子集,与浏览…...
JVM-内存溢出的原因、CPU占满的原因
1.内存溢出的原因 OOM的排查思路_oom排查_java排坑日记的博客-CSDN博客 每个进程的内存(限制,譬如2G)最大堆容量最大方法区容量程序计数器虚拟机栈和本地方法栈。多线程下每个线程栈越大,越容易OOM. 1.堆内存溢出(OO…...
如何做好银行统一报送系统UI设计
北京蓝蓝设计公司是一支由清华美院毕业的专业团队组成的设计公司。我们的设计师们在金融银行软件领域拥有12年的工作经验和丰富的行业知识。 在工作中我们常常思考银行金融反洗钱软件用户使用痛点是什么?我们发现用户的使用痛点往往是: 1功能入口不清晰…...
988. 从叶结点开始的最小字符串
988. 从叶结点开始的最小字符串 C代码:DFS /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/// 叶子节点// 每一层用一个pathTop、遇到叶子节点就判断一次;…...
RealSense D455启动教程
环境: ubuntu20.04 ros:noetic 视觉传感器:Intel RealSense D455 通过命令安装不成功后改为下面源码安装 1. 安装Intel RealSense SDK 2.0 1.1源码安装 1. 下载源码git clone https://github.com/IntelRealSense/librealsense cd librealsense…...
docker与phpstudy两种方式部署wordpress 并 开启伪静态
实际测试,可能是docker内存限制的缘故,docker部署的会比较卡 下载 wordpress phpstudy phpstudy中伪静态配置 伪静态 正常访问 WordPress 文章页的 URL 地址为 http://asa/index.php?p123。变成伪静态就是http://asa/123.html 。 伪静态是相对真实静…...
网站搭建最简化的引导操作 | 云服务器的购买选用 | 域名的选用 | 网站的上线和备案。
本文章面向对象为网站搭建的初次操作者,主要是一些自主使用的网站,为小白做为引导的教程。 一, 网站搭建的流程 1,服务器的租赁 2,购买域名 3,对域名进行备案 4,网站内部的搭建,上线…...
Spring Cloud Foundry上使用通配符模式匹配进行的安全绕过漏洞 CVE-2023-20873
文章目录 0.前言1.参考文档2.基础介绍描述如果满足以下任一条件,应用程序就不会有太大风险:受影响的Spring产品和版本 3.解决方案3.1. 升级版本3.2. 替代方案 0.前言 背景:公司项目扫描到 Spring Cloud Foundry上使用通配符模式匹配进行的安全…...
SkyWalking UI 保姆级使用指南:从仪表盘到告警,手把手教你排查线上问题
SkyWalking UI 实战指南:从异常告警到代码级优化的全链路排查 当凌晨三点的告警短信突然亮起屏幕,作为值班工程师的你该如何快速定位线上服务的性能瓶颈?SkyWalking UI 提供的不仅是数据看板,更是一套完整的分布式系统诊断工具箱。…...
基于以太网转换器的工业交换机接入方案提升数据传输效率与稳定性
一、项目背景 某中型自动化生产企业现有3条生产线,核心控制设备采用10套西门子S7-200 SMART CPU SR40 PLC,负责生产线配料、输送、检测等全流程控制。随着企业数字化升级推进,需实现PLC与上位机、触摸屏的数据实时交互,接入工厂简…...
Vue3 + Vitest 浏览器测试 从零开发指南
一、我们要做什么? 写一个 Vue3 计数器组件(显示名字 点按钮数字1)写 Vitest 自动化测试(让电脑自动验证功能是否正确)全程不用弹浏览器,在终端就能看到测试结果 ✅二、准备工作(只需要 1 个软…...
UniApp地图开发避坑指南:在nvue页面里搞定iconfont、动态缩放和点聚合的完整流程
UniApp地图开发实战:nvue页面中的高级技巧与性能优化 1. 引言:为什么选择nvue进行地图开发? 在移动应用开发领域,地图功能已经成为许多应用的核心组件。UniApp作为跨平台开发框架,提供了map组件来实现地图功能…...
YimMenu:GTA5终极安全防护与游戏体验优化完整指南
YimMenu:GTA5终极安全防护与游戏体验优化完整指南 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu …...
杰理微蓝牙芯片AC696系列入门
1.文章背景 此篇文章以ac696n_soundbox_sdk_v1.7.0版本进行入门讲解: 写这篇文章的目的是因为自己在尝试入门杰理微的时候遇到了好多的问题点,想尝试用买到的开发板来驱动一颗LED闪烁却一直没有按自己想象的逻辑成功跑出效果,在网上到处翻找手…...
序列近似整数规划导向的通用高性能离散变量拓扑优化新方法【附算法】
✨ 长期致力于拓扑优化、整数规划、序列近似规划、信赖域、拓扑不变量研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)正则松弛算法求解大规模可分离整…...
从音箱分频到电源净化:聊聊RLC低通滤波器那些意想不到的实用场景
从音箱分频到电源净化:聊聊RLC低通滤波器那些意想不到的实用场景 在电子工程的世界里,RLC低通滤波器就像一位低调的幕后英雄。它不像微处理器那样引人注目,也不像显示屏那样直观可见,却在无数电子设备中默默发挥着关键作用。从你每…...
别再只会点灯了!用Arduino和WS2812B灯带做个会呼吸的桌面氛围灯(附完整代码)
用Arduino打造会呼吸的WS2812B智能氛围灯系统 你是否已经厌倦了简单的LED闪烁效果?想让你的工作台或游戏空间拥有更高级的光效体验?今天我们将突破基础点灯的局限,用Arduino和WS2812B灯带打造一套具备呼吸效果的智能氛围灯系统。这不仅仅是一…...
阀门耐火试验报告中的关键信息该怎么看?
很多人在拿到阀门耐火试验报告后,第一眼往往先看最终结论:合格还是不合格?其实,对于技术人员、质量人员和采购验收人员来说,耐火试验报告不应只看最后一行结论。报告中的样品信息、检测依据、试验项目、结果描述和实验…...
