最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

React錯誤邊界Error Boundaries

 更新時間:2023年01月29日 11:30:02   作者:-耿瑞-  
錯誤邊界是一種React組件,這種組件可以捕獲發(fā)生在其子組件樹任何位置的JavaScript錯誤,并打印這些錯誤,同時展示降級UI,而并不會渲染那些發(fā)生崩潰的子組件樹

首先 我們先構(gòu)建出問題的場景

我們創(chuàng)建一個react項目

然后在src下創(chuàng)建 components 文件夾目錄

在下面創(chuàng)建一個 error.jsx 組件

參開代碼如下

import React from "react";
export default class App extends React.Component{
  constructor(props){
    super(props);
    this.state = {
    }
  }
  render(){
    return (
      <div>
          { null.bingt }
      </div>
    )
  }
}

這時 就會有人說了 你這 null.bingt 不是擺明會報錯嗎?

沒錯 我們要的就是報錯

找到src下的 App.js 編寫代碼如下

import './App.css';
import React from "react";
import Error from "./components/error";
export default class App extends React.Component{
  constructor(props){
    super(props);
    this.state = {
    }
  }
  render(){
    return (
      <div>
          <span>你好</span>
          <Error/>
      </div>
    )
  }
}

運行之后 控制臺直接報錯 界面白屏 但其實 App組件上還有個你好啊 說明 整個項目都沒渲染出來

直接白屏 版本低一點的react還會出現(xiàn)報錯的專門的界面 但在上線之后 客戶看到的就是一片空白

但我們想 因為一個組件報錯 導(dǎo)致整個項目都運行不起來 這合理嗎?

顯然是不合理的

此時 我們可以在 components 目錄下創(chuàng)建 ErrorBoundary.jsx組件

參考代碼如下

import React from "react"
export default class ErrorBoundary extends React.Component{
    state = {
        hasError:false,
        error:null,
        errorInfo:null
    }
    componentDidCatch(error,errorInfo){
        this.setState({
            hasError:true,
            error:error,
            errorInfo:errorInfo
        })
    }
    render(){
        if(this.state.hasError){
            return <div>{ this.props.render(this.state.error,this.state.errorInfo) }</div>
        }
        return this.props.children;
    }
}

此時 我們的一個捕獲錯誤的組件就寫好了

然后 改寫 src下的 App.js

代碼如下

import './App.css';
import React from "react";
import Error from "./components/error";
import ErrorBoundary from "./components/ErrorBoundary";
export default class App extends React.Component{
  constructor(props){
    super(props);
    this.state = {
    }
  }
  render(){
    return (
      <div>
          <span>你好</span>
          <ErrorBoundary render ={ (error,errorInfo) => <p>{ '加載時發(fā)生錯誤' }</p>}>
              <Error/>
          </ErrorBoundary>
      </div>
    )
  }
}

此時 我們將ErrorBoundary捕獲報錯的組件 套在了Error外面

然后 編寫 當(dāng)報錯時 就渲染

{ ‘加載時發(fā)生錯誤’ }

運行結(jié)果如下

控制臺依舊會輸出報錯信息 但 將不會運行到其他組件的渲染 而且 我們指定報錯后 渲染的

{ ‘加載時發(fā)生錯誤’ }

也成功渲染出來了

就是 之后我們指定可能某個組件 會報錯 就可以用這個組件套一下 避免一個組件報錯 整個項目白屏的情況

到此這篇關(guān)于React錯誤邊界Error Boundaries的文章就介紹到這了,更多相關(guān)React錯誤邊界內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • React渲染機制超詳細講解

    React渲染機制超詳細講解

    React整個的渲染機制就是React會調(diào)用render()函數(shù)構(gòu)建一棵Dom樹,在state/props發(fā)生改變的時候,render()函數(shù)會被再次調(diào)用渲染出另外一棵樹,重新渲染所有的節(jié)點,構(gòu)造出新的虛擬Dom tree
    2022-11-11
  • React手寫簽名組件react-signature實現(xiàn)簽字demo

    React手寫簽名組件react-signature實現(xiàn)簽字demo

    這篇文章主要為大家介紹了React手寫簽名組件react-signature實現(xiàn)簽字demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • react進階教程之異常處理機制error?Boundaries

    react進階教程之異常處理機制error?Boundaries

    在react中一旦出錯,如果每個組件去處理出錯情況則比較麻煩,下面這篇文章主要給大家介紹了關(guān)于react進階教程之異常處理機制error?Boundaries的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • 字節(jié)封裝React組件手機號自動校驗格式FormItem

    字節(jié)封裝React組件手機號自動校驗格式FormItem

    這篇文章主要為大家介紹了字節(jié)封裝React組件手機號自動校驗格式FormItem,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • React項目中服務(wù)器端渲染SSR的實現(xiàn)與優(yōu)化詳解

    React項目中服務(wù)器端渲染SSR的實現(xiàn)與優(yōu)化詳解

    在傳統(tǒng)的 React 項目里,頁面的渲染工作是在瀏覽器里完成的,而服務(wù)器端渲染(SSR)則是讓服務(wù)器先把 React 組件渲染成 HTML 字符串,再把這個 HTML 字符串發(fā)送給瀏覽器,下面我們就來看看具體實現(xiàn)方法吧
    2025-03-03
  • React Native 中添加自定義字體的方法

    React Native 中添加自定義字體的方法

    這篇文章主要介紹了如何在 React Native 中添加自定義字體,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • React組件化學(xué)習(xí)入門教程講解

    React組件化學(xué)習(xí)入門教程講解

    React是現(xiàn)在前端使用頻率最高的三大框架之一,React率先提出虛擬DOM的思想和實現(xiàn),使其保持有良好的性能。本篇文章將對React組件化的入門學(xué)習(xí)進行講解,同時針對模塊化的思想進行概述,為接下來組件化開發(fā)的文章進行知識儲備
    2022-09-09
  • 如何使用 React Native WebView 實現(xiàn) App 與 Web 的通訊

    如何使用 React Native WebView 實現(xiàn) App&nb

    通過 react-native-webview,我們可以輕松實現(xiàn) App 與 Web 的雙向通訊,這種技術(shù)非常適合需要在移動應(yīng)用中嵌入復(fù)雜網(wǎng)頁功能的場景,感興趣的朋友一起看看吧
    2024-12-12
  • React 實現(xiàn)表單組件的示例代碼

    React 實現(xiàn)表單組件的示例代碼

    本文主要介紹了React 實現(xiàn)表單組件的示例代碼,支持包括輸入狀態(tài)管理,表單驗證,錯誤信息展示,表單提交,動態(tài)表單元素等功能,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • create-react-app修改為多頁面支持的方法

    create-react-app修改為多頁面支持的方法

    本篇文章主要介紹了create-react-app修改為多頁面支持的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05

最新評論

察雅县| 根河市| 双鸭山市| 上高县| 深泽县| 玉环县| 沾化县| 张家界市| 西丰县| 双峰县| 鄂托克旗| 旅游| 固安县| 柘荣县| 汝州市| 东兰县| 绿春县| 侯马市| 岑溪市| 合江县| 宁陕县| 上栗县| 乐业县| 徐水县| 浏阳市| 广宗县| 新巴尔虎右旗| 来安县| 涿鹿县| 祁东县| 岳池县| 广德县| 常熟市| 新蔡县| 衡山县| 龙川县| 永福县| 额尔古纳市| 久治县| 三亚市| 阿拉善盟|