成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試官:Next.js 中的 next/dynamic 有什么作用?如何使用它

開發 前端
??next/dynamic?? 是 Next.js 提供的動態導入(Lazy Loading)功能,用于按需加載組件,從而減少首屏 JS 體積,提高性能。

next/dynamic 是 Next.js 提供的動態導入(Lazy Loading)功能,用于按需加載組件,從而減少首屏 JS 體積,提高性能。

?? next/dynamic 的作用

減少初始 JS 體積(代碼分割,提高頁面加載速度)
按需加載組件(只有在需要時才下載 JS 代碼)
避免 SSR 渲染不支持的庫(如 window 依賴的庫)
支持自定義加載狀態(可以顯示 Loading 占位符)

?? next/dynamic 的基本用法

?? 基礎用法

import dynamic from "next/dynamic";

// 組件在客戶端加載(不會 SSR)
const HeavyComponent = dynamic(() => import("../components/HeavyComponent"), {
  ssr: false, // 關閉 SSR
});

export default function Page() {
  return <HeavyComponent />;
}

優化點

  • HeavyComponent 不會被包含在服務器渲染的 HTML 中
  • 僅在 客戶端加載,不會影響 SSR

?? 1. 懶加載大型組件

?? 適用于圖表、地圖等大型組件

import dynamic from "next/dynamic";

// 組件按需加載
const Chart = dynamic(() => import("../components/Chart"), {
  loading: () => <p>Loading...</p>, // ? 加載時顯示占位符
});

export default function Page() {
  return <Chart />;
}

優化點

  • Chart 組件不會影響首屏加載
  • 只有用戶訪問該頁面時才會加載

?? 2. 關閉 SSR,避免 window 相關錯誤

?? 某些第三方庫(如 mapbox-gl)只在客戶端運行

import dynamic from "next/dynamic";

// 關閉 SSR,避免 `window is not defined` 錯誤
const Map = dynamic(() => import("../components/Map"), { ssr: false });

export default function Page() {
  return <Map />;
}

優化點

  • 避免 window is not defined 錯誤
  • 適用于僅在客戶端運行的庫

?? 3. 僅在事件觸發時加載

?? 避免不必要的加載

import { useState } from "react";
import dynamic from "next/dynamic";

const HeavyComponent = dynamic(() => import("../components/HeavyComponent"));

export default function Page() {
  const [show, setShow] = useState(false);

  return (
    <div>
      <button onClick={() => setShow(true)}>顯示組件</button>
      {show && <HeavyComponent />}
    </div>
  );
}

優化點

  • 只有用戶點擊按鈕時才加載 HeavyComponent
  • 減少初始加載時間

?? 4. dynamic() 配合 import() 進行代碼拆分

?? 按需加載模塊

async function handleClick() {
  const { someFunction } = await import("../utils/heavyFunctions");
  someFunction();
}

優化點

  • 僅在需要時加載模塊
  • 避免影響主 JS 體積

?? 總結

用法

適用場景

優化點

默認動態導入

組件懶加載

? 只在需要時加載

SSR 關閉

 (ssr: false)

依賴 window 的庫

? 避免 window is not defined 錯誤

自定義加載狀態

顯示 Loading UI

? 提升用戶體驗

事件觸發加載

用戶交互后才加載

? 減少不必要的 JS

?? 一句話總結?? next/dynamic 讓 Next.js 組件支持懶加載,減少 JS 體積,優化頁面性能! 

責任編輯:武曉燕 來源: 大遷世界
相關推薦

2025-03-05 00:02:00

Next.jsExpress.jAPI 路由

2025-01-26 07:10:00

Web 應用Next.js代碼分割

2025-03-17 03:00:00

2021-07-06 07:27:45

React元素屬性

2024-12-13 08:37:32

2024-11-25 07:39:48

2025-02-05 07:00:00

Next.jsWeb前端

2025-02-03 00:00:35

2025-03-06 00:00:00

2025-03-31 00:00:00

?增量靜態再生Next.jsISR

2024-05-09 09:01:03

2024-09-20 15:37:02

2024-04-28 10:56:34

Next.jsWeb應用搜索引擎優化

2024-09-04 10:27:53

2025-03-21 00:05:00

2025-03-19 08:06:31

2023-09-04 08:20:00

2024-07-19 10:03:29

2025-01-17 09:29:42

2024-02-05 11:55:41

Next.js開發URL
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线成人精品视频 | 成人免费视屏 | 国户精品久久久久久久久久久不卡 | 国产精品久久久久国产a级 欧美日韩国产免费 | 国产成人综合网 | a久久| 男女羞羞网站 | 欧美一级黄视频 | 亚洲三区视频 | 日韩av免费看 | 欧美一二三 | 日韩中文字幕网 | 国产精品免费看 | 一级毛片在线播放 | 久久久精品一区二区三区 | 99视频久 | 欧美在线日韩 | 日本久久精品视频 | 欧美日韩中文字幕在线 | 精品伊人久久 | 激情欧美一区二区三区 | 91精品国产91久久久久久丝袜 | 久久久久亚洲国产| 成年人视频在线免费观看 | 亚洲免费在线观看视频 | 一级黄色片网站 | 一级片在线播放 | 你懂的av | 久久成人一区二区三区 | 日韩电影在线一区 | 欧美视频三区 | 99久久精品一区二区成人 | 免费观看羞羞视频网站 | 久久亚洲国产 | 色视频在线免费观看 | 欧美涩| 国产精品国产成人国产三级 | av网站免费观看 | 欧美精品久久久久久 | 久久久久久久电影 | 成人免费视频网站在线看 |