React 之 lazy(延遲加載)(十六)

lazy 能夠讓你在組件第一次被渲染之前延遲加載組件的代碼。

在組件外部調用 lazy,以聲明一個懶加載的 React 組件:

import { lazy } from 'react';const MarkdownPreview = lazy(() => import('./MarkdownPreview.js'));

配合?Suspense 實現懶加載組件

//App.js
import { useState, Suspense, lazy } from 'react';
import Loading from './Loading.js';
//將 lazy 組件聲明在組件外部
const MarkdownPreview = lazy(() => delayForDemo(import('./MarkdownPreview.js')));export default function MarkdownEditor() {const [showPreview, setShowPreview] = useState(false);const [markdown, setMarkdown] = useState('Hello, **world**!');return (<><textarea value={markdown} onChange={e => setMarkdown(e.target.value)} /><label><input type="checkbox" checked={showPreview} onChange={e => setShowPreview(e.target.checked)} />Show preview</label><hr />
//MarkdownPreview 的代碼只有在你嘗試渲染它時才會被加載。
//如果 MarkdownPreview 還沒有加載完成,將顯示 Loading。{showPreview && (<Suspense fallback={<Loading />}><h2>Preview</h2><MarkdownPreview markdown={markdown} /></Suspense>)}</>);
}
// 添加一個固定的延遲時間,以便你可以看到加載狀態
function delayForDemo(promise) {return new Promise(resolve => {setTimeout(resolve, 2000);}).then(() => promise);
}//Loading.js
export default function Loading() {return <p><i>Loading...</i></p>;
}//MarkdownPreview.js
import { Remarkable } from 'remarkable';
const md = new Remarkable();
export default function MarkdownPreview({ markdown }) {return (<divclassName="content"dangerouslySetInnerHTML={{__html: md.render(markdown)}}/>);
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/10032.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/10032.shtml
英文地址,請注明出處:http://en.pswp.cn/web/10032.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深入學習指針3

目錄 前言 1.二級指針 2.指針數組 3.指針數組模擬二維數組 前言 Hello,小伙伴們我又來了&#xff0c;上期我們講到了數組名的理解&#xff0c;指針與數組的關系等知識&#xff0c;那今天我們就繼續深入到學習指針域數組的練聯系&#xff0c;如果喜歡作者菌生產的內容還望不…

Python GraphQL服務器實現庫之tartiflette使用詳解

概要 Tartiflette是一個為Python編寫的GraphQL服務器實現,它建立在現代異步編程庫如asyncio之上,提供了高性能的GraphQL執行環境。Tartiflette專注于提供最佳的開發者體驗,支持最新的GraphQL特性。 安裝 安裝Tartiflette相對簡單,但需要依賴于一些系統級的庫。 首先,需…

ORACLE ODA一體機存儲節點電源故障的分析處理

近期&#xff0c;某用戶的ORACLE ODA一體機在例行機房巡檢時出現亮黃燈告警&#xff1b;用戶反饋次問題后我們立刻通過遠程方式&#xff0c;登陸ODA的控制臺進行查看&#xff1b; 對于ODA一體機&#xff08;2個計算節點1個存儲節點&#xff09;&#xff0c;計算節點可以通過il…

Python爬蟲實戰:爬取【某旅游交通出行類網站中國內熱門景點】的評論數據,使用Re、BeautifulSoup與Xpath三種方式解析數據,代碼完整

一、分析爬取網頁&#xff1a; 1、網址 https://travel.qunar.com/2、 打開網站&#xff0c;找到要爬取的網頁 https://travel.qunar.com/p-cs299979-chongqing進來之后&#xff0c;找到評論界面&#xff0c;如下所示&#xff1a;在這里我選擇驢友點評數據爬取點擊【驢友點評…

騰訊共享WiFi項目的加盟方式有哪些?

在這個互聯互通的時代&#xff0c;共享經濟的浪潮正以前所未有的力量席卷全球&#xff0c;而騰訊作為中國互聯網巨頭之一自然不會錯過這場盛宴。其推出的騰訊共享WiFi項目自問世以來就備受矚目&#xff0c;它不僅為用戶提供便捷的上網服務&#xff0c;更為創業者打開了一個全新…

untiy 為預制體動態加載光照貼圖

unity版本為2021.8 預制體不能攜帶光照貼圖信息&#xff0c;只能我們自己準備了 多方查找加自己摸索終于找到了適合新版本的解決方案&#xff0c;直接貼代碼 將這個腳本掛到預制體的最上級 using System.Collections; using System.Collections.Generic; using UnityEditor; …

美顏SDK是什么?深度學習技術在直播美顏SDK中的應用探析

美顏SDK的出現為直播、視頻通話等應用提供了強大的美顏功能。接下來&#xff0c;我們將一同探討美顏SDK的概念&#xff0c;以及深度學習技術在直播美顏SDK中的應用。 一、什么是美顏SDK&#xff1f; 美顏SDK是一種軟件開發工具包&#xff0c;旨在為開發者提供便捷而強大的美顏…

四大誤區:中臺產品時設計你中招了幾個?

01 誤區一&#xff1a;管理系統分析工具數字化中臺 傳統企業在經營管理過程中會根據業務或管理需求&#xff0c;不斷添加和升級諸如OA、CRM等不同類別的管理系統。 為了更好地響應前臺的業務需求&#xff0c;有些企業成立了新的或擴大、加強了原有的技術部門&#xff0c;由…

LeetCode 題目 116:填充每個節點的下一個右側節點指針

作者介紹&#xff1a;10年大廠數據\經營分析經驗&#xff0c;現任字節跳動數據部門負責人。 會一些的技術&#xff1a;數據分析、算法、SQL、大數據相關、python&#xff0c;歡迎探討交流 歡迎加入社區&#xff1a;碼上找工作 作者專欄每日更新&#xff1a; LeetCode解鎖1000題…

C#上位機1ms級高精度定時任務

precisiontimer 安裝擴展包 添加引用 完整代碼 using PrecisionTiming;using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; us…

WinSCP軟件出錯:連接被意外關閉了

問題描述&#xff1a; WinSCP 登錄 M3568 的 linux系統&#xff0c;提示 列出’/home/root’的目錄項時出錯&#xff0c;連接被意外關閉 具體提示如下圖所示&#xff0c;列出’/home/root’的目錄項時出錯。 連接被意外關閉了 服務器發送命令的退出狀態255 原因及解決&#xf…

notepad++安裝 hex-editor插件

打開notepad 點擊插件 搜索 hex-editor,點擊右側 安裝install 安裝成功后&#xff0c;在已安裝插件中就有顯示了

spring boot參數驗證注解@NotNull、@NotBlank和@NotEmpty區別

目錄 前言說明舉例 前言 使用spring boot參數驗證是常常會使用NotNull、NotBlank和NotEmpty三個判斷是否不為空的注解&#xff0c;中文都有不能為空的意思&#xff0c;大部分使用者都傻傻分清它們之間到底有什么區別。今天就讓咱們來一起探索它們之間的不同吧。 說明 注解名…

等保測評安全物理環境測評講解

等保測評中的安全物理環境測評主要關注信息系統的物理安全保護措施&#xff0c;確保機房、設備和數據的物理安全。以下是安全物理環境測評的關鍵點講解&#xff1a; 1. **物理位置選擇**&#xff1a; - 機房應選擇在具有防震、防風和防雨能力的建筑內。 - 應避免設在建筑…

【數據庫】數據庫指令

一。數據庫打開 1.命令行 2.進入mysql mysql -uroot -p密碼 3.退出 exit&#xff1b; 二。針對數據庫的操作 1.創建數據庫&#xff08;有分號&#xff09; create database student; 2.使用數據庫 use student 3.刪除數據庫&#xff08;有分號&#xff09; drop database…

verilog基礎語法之數據類型

verilog基礎語法之數據類型 1、 wire類型2、 reg類型3、向量 Verilog最常用的數據類型有兩種&#xff1a;線網&#xff08;wire&#xff09;和寄存器&#xff08;reg&#xff09;。其中&#xff0c;wire 類型表示硬件單元之間的物理連線&#xff0c;reg用來表示存儲單元。 1、…

數據庫調優-數據庫優化

數據庫優化 如何發現復雜的SQL有問題&#xff1f; 一個個去explain嗎&#xff1f;你有沒有這樣的困惑&#xff0c;開發代碼運行順暢絲滑&#xff0c;上生產了卻卡的一逼&#xff1f; 哈哈&#xff0c;相信大家都會遇到這樣的問題&#xff01; sql 復制代碼 # 舉個栗子&…

4. 從感知機到神經網絡

目錄 1. 從感知機到神經網絡 2. 最簡單的神經網絡 3. 激活函數的引入 1. 從感知機到神經網絡 之前章節我們了解了感知機&#xff0c;感知機可以處理與門、非與門、或門、異或門等邏輯運算&#xff1b;不過在感知機中設定權重的工作是由人工來做的&#xff0c;而設定合適的&a…

【將Maven源改為國內阿里云鏡像源】

目錄 一、如何配置Maven鏡像源&#xff1f; 二、Idea中的Maven配置 ?三、項目與你本地倉庫和中央倉庫的聯系 一、如何配置Maven鏡像源&#xff1f; 1、打開你的Maven用戶設置文件(settings.xml)。默認情況下&#xff0c;該文件存在于你的用戶目錄下的.m2文件夾中。如果你沒…

小程序內使用web-view組件嵌套H5頁面,當H5頁面更換了內容后,小程序里的h5頁面不更新

這個問題是由于小程序緩存了H5的內容造成的&#xff0c;可以在H5鏈接后面拼接個參數&#xff0c;加上時間戳可做用于H5的版本號&#xff0c;這樣每次訪問都可以全新的鏈接展示內容避免緩存&#xff0c;代碼如下wxml&#xff1a; <view> <web-view src"{{urlpath…