默認(rèn)情況下,當(dāng)import組件時(shí),對(duì)應(yīng)的CSS也會(huì)被加載,這容易造成樣式?jīng)_突,如下:
import MobileApp from './MobileApp'
import DesktopApp from './App'
//這里MobileApp,DesktopApp組件中的css都會(huì)被引入
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<BrowserRouter>
<Suspense fallback={<div>Loading...</div>}>
{isMobile() ? <MobileApp /> : <DesktopApp />}
</Suspense>
</BrowserRouter>
);如果想引入不同的組件時(shí),才引入對(duì)應(yīng)的css, 可以如下操作
import React,{lazy,Suspense} from 'react';
import ReactDOM from 'react-dom/client';
import { BrowserRouter } from 'react-router-dom';
import isMobile from './funs/isMobile';
const MobileApp = lazy(() => import('./MobileApp'));
const DesktopApp = lazy(() => import('./App'));
//當(dāng)真正要渲染時(shí),才加載import
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<BrowserRouter>
<Suspense fallback={<div>Loading...</div>}>
{isMobile() ? <MobileApp /> : <DesktopApp />}
</Suspense>
</BrowserRouter>
);