随笔- 191  文章- 0  评论- 3  阅读- 59242 

React 实现 动态加载组件

import { Button } from 'antd'
import React, { useState, lazy, Suspense } from 'react'

//这个地方动态加载组件
//const Item = lazy(() => import('./Module.jsx')) //错误
const [Item, setItem] = useState(null)//正确
setItem(lazy(() => import('./Module.jsx')))

export function Test() {
  const [showPreview, setShowPreview] = useState(false)
  return (
    <div>
      <Button onClick={() => setShowPreview(true)}>ShowPreview</Button>
      {showPreview && (
        <Suspense fallback={<></>}>
          <Item />
        </Suspense>
      )}
    </div>
  )
}

./Module.jsx

这里注意导出的方式为 export default
export default () =>{
  return (
    <>
      test
    </>
  )
}

路由懒加载:

//"./views/Filter/Filter"
export default ():JSX.Element=> <div>lazy</div>
const Filter = lazy(() => import("./views/Filter/Filter"));

<Route
        path="/filter"
        element={
          <Suspense fallback={<div>loading...</div>}>
            <Filter />
          </Suspense>
        }
      >
    <Route path="subOutlet" element={<div>sub other</div>}></Route>
</Route>
 posted on   laremehpe  阅读(443)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示