React真正渲染时才加载组件对应的CSS

时间:2024-09-24 15:22:34 类型:React
字号:    

默认情况下,当import组件时,对应的CSS也会被加载,这容易造成样式冲突,如下:

import MobileApp from './MobileApp'
import  DesktopApp from  './App'
//这里MobileApp,DesktopApp组件中的css都会被引入
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
    <BrowserRouter>
            <Suspense fallback={<div>Loading...</div>}>
                {isMobile() ? <MobileApp /> : <DesktopApp />}
            </Suspense>
    </BrowserRouter>
   
);

如果想引入不同的组件时,才引入对应的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'));
//当真正要渲染时,才加载import


const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
    <BrowserRouter>
            <Suspense fallback={<div>Loading...</div>}>
                {isMobile() ? <MobileApp /> : <DesktopApp />}
            </Suspense>
    </BrowserRouter>
   
);


<