[リアクション]-[デバイス-検出]を使用してページを移動
13840 ワード
今回の配置Takeusでは、pcで画面を見ることをお勧めしますが、移動の観点から見ると、画面を壊すべきではないと思います.だから私がモバイルデバイスにアクセスしたとき、私はいっそあなたにモバイルの準備をしているページを見せることにしました.
reactがモバイルデバイスのアクセスを検出する方法を探していると、react-device-detectというライブラリが見つかり、モバイルアクセスを非常に簡単に検出できます.
https://www.npmjs.com/package/react-device-detect
このライブラリを使用して、「モバイルReady」画面を実装する方法を見てみましょう.
PMは「移動の準備中」画面だけではなく、後で共有して表示するためのボタンを追加することをお勧めします.🙂 (次回はKakaoTalkやFacebookを共有する機能も追加できます!) isMobile を使用 MobileVuew、BrowserView を使用
https://github.com/duskload/react-device-detect#readme
reactがモバイルデバイスのアクセスを検出する方法を探していると、react-device-detectというライブラリが見つかり、モバイルアクセスを非常に簡単に検出できます.
https://www.npmjs.com/package/react-device-detect
このライブラリを使用して、「モバイルReady」画面を実装する方法を見てみましょう.
1.react-device-detectのインストール
yarn add react-device-detect
2.移動準備ビューのリフレッシュ
PMは「移動の準備中」画面だけではなく、後で共有して表示するためのボタンを追加することをお勧めします.🙂 (次回はKakaoTalkやFacebookを共有する機能も追加できます!)
import React from 'react';
import styled from 'styled-components';
import mobilePreparingImg from 'assets/img/img_mobile_preparing.png';
const MobilePage = () => {
const handleLinkCopy = () => {
navigator.clipboard.writeText(document.location.href);
alert('링크가 복사되었습니다!');
};
return (
<MobilePageWrapper>
<img src={mobilePreparingImg} alt="mobile icon" />
<p className="title">PC버전으로 접속해주세요</p>
<p className="description">
아쉽게도 모바일은 지원하지 않아요😥 <br />
PC환경에서 테이커스를 이용해주세요!
</p>
<button className="link-copy-button" onClick={handleLinkCopy}>
링크 복사하기
</button>
</MobilePageWrapper>
);
};
/** styled components */
export default MobilePage;
3. App.モバイルビューロジックをjsxに追加
import React from 'react';
import { isMobile } from 'react-device-detect';
import GlobalStyle from './styles/GlobalStyle';
import styled from 'styled-components';
import { Header, Footer } from './components/index';
import LoginProvider from './lib/context/provider';
import { MobilePage } from 'pages';
function App() {
return (
<>
<GlobalStyle />
{isMobile ? (
<MobilePage />
) : (
<Router>
<LoginProvider>
<Header />
/** content */
<Footer />
</LoginProvider>
</Router>
)}
</>
);
}
export default App;
1つ目の方法はismobileと3つの演算子を使用して条件レンダリングを行うことです.これは簡単な方法ですが、App.jsx
の内容が複雑になると、コードが認識しにくくなる可能性があります.import React from 'react';
import { BrowserView, MobileView } from 'react-device-detect';
import GlobalStyle from './styles/GlobalStyle';
import styled from 'styled-components';
import { Header, Footer } from './components/index';
import LoginProvider from './lib/context/provider';
import { MobilePage } from 'pages';
function App() {
return (
<>
<GlobalStyle />
<MobileView>
<MobilePage />
</MobileView>
<BrowserView>
<Router>
<LoginProvider>
<Header />
/** content */
<Footer />
</LoginProvider>
</Router>
</BrowserView>
</>
);
}
export default App;
2つ目の方法はBrowserViewとMobileViewを使うことです!App.jsx
に多くのラベルがある場合、第2の方法はより簡潔で清潔に見えます.🙂実行結果
react-device-detect
を使用すると、chrome開発ツールのモバイル画面にアプリケーションが表示されます.react-device-detect
を使用して、非常に簡単なモバイルページを実現しました!このパッケージには、今日紹介されているisMobile
、MobileView
、BrowserView
のほかに、isIE
などの他の機能があります.https://github.com/duskload/react-device-detect#readme
Reference
この問題について([リアクション]-[デバイス-検出]を使用してページを移動), 我々は、より多くの情報をここで見つけました https://velog.io/@chaerin00/React-react-device-detect를-활용하여-모바일-페이지-구현하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol