반응형

 

브라우저 환경과 모바일 환경에서의 페이지 분기를 처리를 해보자.

npm i react-device-detect

 

해당 라이브러리를 설치하면 대표적으로 사용할 수 있는 4가지를 사용해보자.

import { BrowserView, MobileView, isBrowser, isMobile } from 'react-device-detect'

 

먼저 isBrowser , isMobile 은 boolean 형태로 return 되며 조건부 렌더링에 따라 화면 렌더링이 가능하다.

function App() {
  return (
    <>
      {isMobile ? (
        <MobileMain />
      ) : (
      	<BrowserMain />
      )}
    </>
  );
}

 

필자는 해당방법보다는 BrowserView, MobileView 로 분기처리 하는 것을 좀 더 선호한다.

import { BrowserView, MobileView } from 'react-device-detect'

export default function Router() {
	return (
		<>
        {/* { 브라우저 환경일 경우 라우팅 } */}
			<BrowserView>
				<BrowserRouter>
					<Routes>
						<Route path="/" element={<Main />} />
					</Routes>
				</BrowserRouter>
			</BrowserView>
         {/* { 모바일 환경일 경우 라우팅 } */}
			<MobileView>
				<BrowserRouter>
					<Routes>
						<Route path="/" element={<MobileMain />} />
					</Routes>
				</BrowserRouter>
			</MobileView>
		</>
	)
}

 

Browser , Mobile , Tablet 등 타입도 제공하니, 해당 라이브러리 index.d.ts 를 살펴보면 더욱 편리하다.

반응형