App.tsx 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import '@/assets/styles/base.css'
  2. // 关于路由
  3. import React, { useCallback, useEffect } from 'react'
  4. import { createHashRouter, RouterProvider } from 'react-router-dom'
  5. import { isMobileFu } from './utils/history'
  6. import SpinLoding from './components/SpinLoding'
  7. import AsyncSpinLoding from './components/AsyncSpinLoding'
  8. import MessageCom from './components/Message'
  9. import screenImg from '@/assets/img/landtip.png'
  10. import NotFound from './components/NotFound'
  11. const A1home = React.lazy(() => import('./pages/A1home'))
  12. const A2show = React.lazy(() => import('./pages/A2show'))
  13. const A3wear = React.lazy(() => import('./pages/A3wear'))
  14. const A0model = React.lazy(() => import('./pages/A0model'))
  15. export default function App() {
  16. // 从仓库中获取查看图片的信息
  17. // const lookBigImg = useSelector((state: RootState) => state.A0Layout.lookBigImg)
  18. const rootDomFu = useCallback(() => {
  19. const rootDom: HTMLDivElement = document.querySelector('#root')!
  20. if (rootDom) {
  21. rootDom.style.height = window.innerHeight + 'px'
  22. }
  23. }, [])
  24. useEffect(() => {
  25. window.addEventListener('resize', rootDomFu, true)
  26. rootDomFu()
  27. }, [rootDomFu])
  28. const router = createHashRouter([
  29. {
  30. path: '/show',
  31. element: <A2show />
  32. },
  33. {
  34. path: '/wear',
  35. element: <A3wear />
  36. },
  37. {
  38. path: '/model',
  39. element: <A0model />
  40. },
  41. {
  42. index: true,
  43. element: <A1home />
  44. },
  45. {
  46. path: '*',
  47. element: <NotFound /> // 或者你的 NotFound 组件
  48. }
  49. ])
  50. return (
  51. <>
  52. {/* 关于路由 */}
  53. <React.Suspense fallback={<SpinLoding />}>
  54. <RouterProvider
  55. router={router}
  56. fallbackElement={<SpinLoding />} // 路由自身懒加载时的回退UI
  57. />
  58. </React.Suspense>
  59. {/* 发送请求的加载组件 */}
  60. <AsyncSpinLoding />
  61. {/* antd 轻提示 ---兼容360浏览器 */}
  62. <MessageCom />
  63. {/* 横屏提示 */}
  64. {isMobileFu() ? (
  65. <div id='ScreenChange'>
  66. <img src={screenImg} alt='' />
  67. <p>请在竖屏模式浏览</p>
  68. </div>
  69. ) : null}
  70. </>
  71. )
  72. }