当前位置: 首页 > news >正文

前端逻辑错误或UI崩溃解决问题

全屏错误覆盖层或UI崩溃

  • Vue
  • React(错误边界)

Vue

Vue的全屏错误覆盖层解决,其实只需要配置Error就好,在开发服务器的client.overlay中设置关闭全屏覆盖层

module.exports = {devServer: {client: {overlay: {warnings: false,errors: false}}}
};

React(错误边界)

  • 错误边界的使用目的为:捕获并处理那些在渲染、生命周期方法和构造函数中出现的错误,不至于让一个组件的崩溃使得整个程序跟着一起崩溃
  • 比如,假设一个社交媒体应用中,用户的个人资料组件发生了错误,如果没有错误边界,整个应用可能会崩溃,但是,如果使用错误边界,可以将这个个人资料组件包裹在错误边界中,当组件出现错误时,错误边界可以渲染出备用的UI,比如一条错误提示信息或者一个默认的用户资料展示页面,而不会让整个应用崩溃

错误边界不能捕获以下几类错误:

  1. 事件处理器中的错误,因为它们在异步上下文中执行,超出了 React 渲染周期的范围
  2. 异步代码中的错误,比如 setTimeoutrequestAnimationFrame 回调函数中的错误
  3. 服务端渲染期间的错误
  4. 自身抛出的错误

ErrorBoundary.jsx

/* eslint-disable no-unused-vars */
/* eslint-disable react/prop-types */
import React, { Component } from 'react';class ErrorBoundary extends Component {constructor(props) {super(props);this.state = { hasError: false };}componentDidCatch(error, info) {this.setState({ hasError: true });console.error(error, info);}render() {if (this.state.hasError) {return <div>出错了?</div>;}return this.props.children;}
}export default ErrorBoundary;

模拟一个出错的程序

err.jsx

class Profile extends Component {render() {// 模拟一个会出错的组件// 假设这里的代码有bug导致渲染失败throw new Error('出错了!');// 正常情况下的 UI 渲染return (<div>{/* ... */}</div>);}
}

App.jsx

import Router from './router/index'
import ErrorBoundary from './components/ErrorBoundary'const App = () => {return (<div><h1>User Profile</h1><ErrorBoundary><Profile /></ErrorBoundary></div>)
}export default App

Profile 组件抛出错误时,错误边界会捕获这个错误并展示备用的 UI,而不会影响整个应用的渲染~

相关文章:

前端逻辑错误或UI崩溃解决问题

全屏错误覆盖层或UI崩溃 VueReact&#xff08;错误边界&#xff09; Vue Vue的全屏错误覆盖层解决&#xff0c;其实只需要配置Error就好&#xff0c;在开发服务器的client.overlay中设置关闭全屏覆盖层 module.exports {devServer: {client: {overlay: {warnings: false,error…...

python爬取QQ音乐评论信息

python爬取QQ音乐评论信息 python爬取QQ音乐评论信息1.随便选个音乐python爬取QQ音乐评论信息 1.随便选个音乐 https://y.qq.com/n/yqq/song/0039MnYb0qxYhV.html 当前的后台调试页面显示如下: 找到评论的数据接口: https://c.y.qq.com/base/fcgi-bin/fcg_global_comme…...

Unity构建详解(1)——SBP介绍

【前言】 Unity的资源工作流程分为导入、创建、构建、分发、加载。我们说的是其中的构建步骤。 构建是指将项目工程中的资源文件和代码整合程可执行文件的过程&#xff0c;构建的结果是生成可执行文件&#xff0c;在win平台上是exe&#xff0c;在Android平台上是apk&#xff…...

贪心算法(算法竞赛、蓝桥杯)--奶牛晒衣服

1、B站视频链接&#xff1a;A28 贪心算法 P1843 奶牛晒衣服_哔哩哔哩_bilibili 题目链接&#xff1a;奶牛晒衣服 - 洛谷 #include <bits/stdc.h> using namespace std; priority_queue<int> q;//用大根堆维护湿度的最大值 int n,a,b; int tim,maxn;int main(){s…...

Redis列表:高效消息通信与实时数据处理的利器

Redis是一个强大的开源内存数据库&#xff0c;被广泛应用于缓存、会话存储、队列等各种场景中。在Redis中&#xff0c;列表&#xff08;List&#xff09;是一种非常重要的数据结构&#xff0c;它提供了存储、获取、操作有序元素集合的功能。本文将深入探讨Redis列表的特性、使用…...

Redis中的缓存雪崩

缓存雪崩 &#x1f914;现象分析 缓存雪崩是指在同一时段大量的缓存key同时失效或者缓存服务(Redis等)宕机&#xff0c;导致大量请求到达数据库&#xff0c;带来巨大压力。 &#x1f44a; 解决方案 利用Redis集群提高服务的可用性&#xff0c;避免缓存服务宕机给缓存业务添…...

使用远程工具连接Mysql

&#xff08;若想要远程连接Mysql需要下面解决四个问题&#xff09; 1、目标地址 直接查询 2、端口号 3306 3、防火墙关闭 [rootlocalhost date]# systemctl stop firewalld.service 4、授权mysql数据库root用户权限&#xff08;因为mysql开始不允许其他IP访问&#xff0…...

2024不起眼的“致富”野路子,不想打工了,做做这些暴利创业项目。2024个人创业做什么项目好;最适合白手起家的创业项目

经济大环境差&#xff0c;并不代表就没有机会。相反&#xff0c;主流经济不好正是另一些人所看重的千载难逢的机会。就像股票市场一样&#xff0c;有人靠做多赚钱&#xff0c;有人靠做空赚钱。下面我们就来分析一下哪些行业会在这个时候崛起。 首先二手行业会迅速崛起&#xff…...

从后端获取文件数据并导出

导出文件的公共方法 export const download (res, tools) > {const { message, hide } tools;const fileReader: any new FileReader();console.log(fileReader-res>>>, res);fileReader.onload (e) > {if (res?.data?.type application/json) {try {co…...

哲♂学家带你深♂入了♂解结构体及结构体内存大小问题

目录 概要 一、结构体的声明 二、结构体变量的创建和初始化 三、结构体的特殊声明 四、结构体内存对齐 1、对齐原则 2、例一 对齐数 计算方法 3、例二 总结 概要 结构体是我们日常编程中经常要用到的一种自定义类型&#xff0c;使用起来也是十分的方便。接下来就由…...

基于SSM的土家风景文化管理平台(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的土家风景文化管理平台&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spri…...

2024年03月CCF-GESP编程能力等级认证C++编程一级真题解析

本文收录于专栏《C++等级认证CCF-GESP真题解析》,专栏总目录:点这里。订阅后可阅读专栏内所有文章。 一、单选题(每题 2 分,共 30 分) 第 1 题 C++表达式 (3 - 2) * 3 + 5 的值是( )。 A. -13 B. 8 C. 2 D. 0 答案:B 第 2 题 C++语句 cout << “5%2=” <&l…...

[Linux]条件变量:实现线程同步(什么是条件变量、为什么需要条件变量,怎么使用条件变量(接口)、例子,代码演示(生产者消费者模式))

目录 一、条件变量 1.什么是条件变量 故事说明 2、为什么需要使用条件变量 竞态条件 3.什么是同步 饥饿问题 二、条件变量的接口 1.pthread_cond_t 2.初始化&#xff08;pthread_cond_init&#xff09; 3.销毁&#xff08;pthread_cond_destroy&#xff09; 4.等待&…...

从Java到json:探索 Jackson 的魔力

引言 Jackson简介 Jackson是一个用于处理JSON数据的开源Java库。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于计算机解析和生成。在Java领域,Jackson已经成为处理JSON数据的事实标准库。它提供了丰富的功能,包括将Java对象转…...

Docker之docker compose!!!!

一、概述 是 Docker 官方提供的一款开源工具&#xff0c;主要用于简化在单个主机上定义和运行多容器 Docker 应用的过程。它的核心作用是容器编排&#xff0c;使得开发者能够在一个统一的环境中以声明式的方式管理多容器应用的服务及其依赖关系。 也就是说Docker Compose是一个…...

shardingsphere+达梦+jpa项目改造适配中遇到的一些问题与解决

问题一&#xff1a;shardingsphere.dialect.exception.syntax.database.UnknownDatabaseException 解决&#xff1a; jdbcTemplate 类注入有问题&#xff0c;如&#xff1a; 1&#xff09;如果使用Resource注解引入该类时&#xff0c;变量名需要与初始化时Bean修饰的方法名相…...

YOLOV9训练自己的数据集

1.代码下载地址GitHub - WongKinYiu/yolov9: Implementation of paper - YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information 2.准备自己的数据集 这里数据集我以SAR数据集为例 具体的下载链接如下所示&#xff1a; 链接&#xff1a;https:/…...

UG NX二次开发(C++)-CAM-获取加工操作的四种方法

文章目录 1、前言2、采用选中工序导航器获取操作的Tag_t3、采用遍历对象的方法获取操作的Tag_t4、采用Collection遍历获取操作对象NXOpen::CAM::Operation5、采用FindObject获取操作对象NXOpen::CAM::Operation6、以上4种方法封装成类 Class CAMOperation6.1 CAMOperation.h文件…...

python共享单车信息系统的设计与实现flask-django-php-nodejs

课题主要分为二大模块&#xff1a;即管理员模块和用户模块&#xff0c;主要功能包括&#xff1a;用户、区域、共享单车、单车租赁、租赁归还、报修信息、检修信息等&#xff1b; 语言&#xff1a;Python 框架&#xff1a;django/flask 软件版本&#xff1a;python3.7.7 数据库…...

Python之Web开发中级教程----Django站点管理

Python之Web开发中级教程----Django站点管理 网站的开发分为两部分&#xff1a;内容发布和公共访问 内容发布是由网站的管理员负责查看、添加、修改、删除数据 Django能够根据定义的模型类自动地生成管理模块 使用Django的管理模块, 需要按照如下步骤操作 : 1.管理界面本地…...

SRWE终极指南:突破Windows窗口限制的专业解决方案

SRWE终极指南&#xff1a;突破Windows窗口限制的专业解决方案 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE SRWE&#xff08;Simple Runtime Window Editor&#xff09;作为一款专业的Windows窗口实时编辑器&…...

别再瞎调了!SRS流媒体服务器性能优化,这5个关键配置项才是核心(附低延迟/高并发场景配置模板)

SRS流媒体服务器性能调优实战指南&#xff1a;5个关键杠杆与场景化配置 当你面对SRS服务器性能瓶颈时&#xff0c;是否曾在数十个配置参数中迷失方向&#xff1f;我曾亲眼见过团队花费两周时间调整非核心参数&#xff0c;最终性能提升却不足5%。本文将揭示真正影响性能的五大黄…...

SQL子查询与临时表的性能对比_实战测试分析

标量子查询在WHERE中可能被重复执行&#xff0c;应优先用LEFT JOIN预聚合或派生表&#xff1b;临时表有开销&#xff0c;CTE默认不物化&#xff0c;需显式提示或改用临时表。子查询在 WHERE 中执行多次&#xff1f;先看执行计划MySQL 或 PostgreSQL 里&#xff0c;WHERE 子句中…...

3分钟开启AI绘画之旅:Docker化Stable Diffusion一键部署指南

3分钟开启AI绘画之旅&#xff1a;Docker化Stable Diffusion一键部署指南 【免费下载链接】stable-diffusion-webui-docker Easy Docker setup for Stable Diffusion with user-friendly UI 项目地址: https://gitcode.com/gh_mirrors/st/stable-diffusion-webui-docker …...

华恒智信助力航空航天人才引进行业完成高学历人才薪酬结构优化

华恒智信助力航空航天人才引进行业完成高学历人才薪酬结构优化航空航天行业对高素质人才的需求持续攀升。行业数据显示&#xff0c;二十万以上薪资的岗位占比已超过30%&#xff0c;高端技术岗位需求增长率超过12%。然而人才供需的结构性缺口依然显著——核心航空专业人才在行业…...

WAN2.2文生视频+SDXL Prompt风格保姆级教程:零基础5分钟生成你的第一段AI视频

WAN2.2文生视频SDXL Prompt风格保姆级教程&#xff1a;零基础5分钟生成你的第一段AI视频 1. 教程目标与准备工作 1.1 你能学到什么 通过本教程&#xff0c;你将掌握&#xff1a; 如何在5分钟内完成WAN2.2文生视频环境的搭建使用中文提示词直接生成高质量视频的完整流程SDXL…...

从Function Calling到MCP:手把手教你为Claude Desktop打造一个“超级工具箱”

从Function Calling到MCP&#xff1a;手把手教你为Claude Desktop打造一个“超级工具箱” 你是否遇到过这样的场景&#xff1a;当你在Claude Desktop中处理一份本地文档时&#xff0c;突然需要快速总结内容要点&#xff0c;却发现AI助手无法直接读取文件&#xff1b;或者当你想…...

终极指南:如何用GPT-Author快速生成专业EPUB电子书

终极指南&#xff1a;如何用GPT-Author快速生成专业EPUB电子书 【免费下载链接】gpt-author 项目地址: https://gitcode.com/GitHub_Trending/gp/gpt-author GPT-Author是一款强大的电子书生成工具&#xff0c;能帮助用户快速创建专业的EPUB格式电子书。本指南将详细介…...

5步让2008-2017款旧Mac免费升级最新macOS系统:OpenCore Legacy Patcher完整指南

5步让2008-2017款旧Mac免费升级最新macOS系统&#xff1a;OpenCore Legacy Patcher完整指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否还在使用20…...

【数据结构与算法】第38篇:图论(二):深度优先搜索(DFS)与广度优先搜索(BFS)

一、图遍历的基本概念1.1 为什么需要遍历和树一样&#xff0c;图也需要一种方式“访问”所有顶点。但图可能有环&#xff0c;所以需要标记已访问的顶点&#xff0c;避免重复访问。1.2 两种遍历方式遍历方式核心思想数据结构DFS一条路走到底&#xff0c;回溯栈&#xff08;递归&…...