React.js 상용구(SPA)
15788 단어 reactboilerplategithubspa
🧐 내용물
What is a SPA
Folder Structure
✨ 빠른 시작
이 저장소를 복제하십시오.
git clone https://github.com/dennisfrijlink/react-spa-boilerplate.git
개발을 시작하십시오.
새 사이트의 디렉토리로 이동하여 시작하십시오.
cd react-spa-boilerplate/
npm install
npm start
달리기!
귀하의 사이트는 현재
http://localhost:3000
에서 실행 중입니다!배포를 위해 생성
dist
폴더에 위치할 정적 프로젝트를 생성합니다.$ npm run build
⚙️ 단일 페이지 애플리케이션이란?
단일 페이지 애플리케이션(SPA)은 브라우저가 전체 새 페이지를 로드하는 기본 방법 대신 웹 서버의 새 데이터로 현재 웹 페이지를 동적으로 재작성하여 사용자와 상호 작용하는 웹 애플리케이션 또는 웹 사이트입니다.
SPA에서 필요한 모든 HTML, JavaScript 및 CSS 코드는 단일 페이지 로드로 브라우저에서 검색하거나 일반적으로 사용자 작업에 대한 응답으로 필요에 따라 적절한 리소스가 동적으로 로드되고 페이지에 추가됩니다. 위치 해시 또는 HTML5 기록 API를 사용하여 응용 프로그램에서 별도의 논리적 페이지에 대한 인식 및 탐색 가능성을 제공할 수 있지만 페이지는 프로세스의 어느 시점에서도 다시 로드되지 않으며 제어권을 다른 페이지로 이전하지도 않습니다.
폴더 구조
자산
assets
폴더에는 3개의 하위 폴더가 있습니다. 먼저 기본 css/scss 파일용입니다. 혼합, 중단점 또는 정의된 글꼴을 생각하십시오. 둘째, 폴더images
와 이 폴더가 말해주는 것 같습니다. 그리고 마지막으로 로컬 글꼴 파일용 폴더fonts
입니다.-| assets/
----| images/
----| scss/
------| DMSans-Regular.ttf
------| DMSans-Bold.ttf
----| fonts/
------| DMSans-Regular.ttf
------| DMSans-Bold.ttf
구성 요소
구성요소 디렉토리에는 React.js 구성요소가 포함되어 있습니다. 구성 요소는 페이지의 여러 부분을 구성하는 요소이며 재사용할 수 있고 페이지, 레이아웃 및 기타 구성 요소로 가져올 수 있습니다.
-| components/
----| card/
------| index.js
------| card.js
------| card.scss
후크
hooks 디렉토리에는 모든 사용자 지정 Hook이 포함되어 있습니다. 사용자 지정 후크는 상태 저장 논리를 재사용하는 메커니즘입니다.
레이아웃
레이아웃은 React Router(check structure) 주변의 래퍼입니다. 레이아웃 내부에는 페이지에 대한 링크가 있는 라우터가 표시됩니다.
-| layouts/
----| app.js
app.js의 예:
import React, { Fragment } from 'react';
import { Link } from 'react-router-dom';
const App = ({ children }) => {
return (
<Fragment>
<div className="navigation">
<Link to="/">home</Link>
<Link to="/about">about</Link>
</div>
<Fragment>
{children}
</Fragment>
</Fragment>
);
};
export default App;
페이지
pages
디렉토리에는 애플리케이션 경로가 포함되어 있습니다. 페이지 디렉토리에 React 구성 요소를 생성하여 경로를 사용할 수 있는 root.js
로 가져와야 합니다.const Home = lazy(() => import("./pages/Home"));
const About = lazy(() => import("./pages/About"));
const Root = (props) => {
return (
<Router>
<App>
<Suspense fallback={<div></div>}>
<Switch>
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
</Switch>
</Suspense>
</App>
</Router>
);
};
앱 구조
📱 중단점 모바일 우선
./assets/scss/
에 있는 scss 폴더에는 웹 개발자가 반응형 웹 사이트에 대한 CSS의 프로토타입, 구축, 확장 및 유지 관리를 보다 쉽게 수행할 수 있도록 하는 두 개의 파일이 포함되어 있습니다.SCSS 파일
assets
│
└─── scss
│
└─── _mixins.scss
│
└─── breakpoints.scss
반응형 웹사이트를 구축하는 것은 오늘날 프런트 엔드 개발자에게 꼭 필요한 기술이므로 중단점을 모바일 우선으로 만들었습니다. 그것들은 모두
@media (min-width:
로 정의되어 있으므로 작성하는 기본 CSS는 모바일 화면을 기반으로 합니다.// breakpoints.scss
/* Small (sm) */
$screen-sm-min: 640px;
/* Medium (md) */
$screen-md-min: 768px;
/* Large (lg) */
$screen-lg-min: 1024px;
/* Extra Large (xl) */
$screen-xl-min: 1280px;
/* Fluid */
$screen-fluid-min: 1536px;
`
이제 가장 중요한 요소인 믹스인을 만들 차례입니다.
`
// _mixins.scss
// Small devices
@mixin sm {
@media (min-width: #{$screen-sm-min}) {
@content;
}
}
// Medium devices
@mixin md {
@media (min-width: #{$screen-md-min}) {
@content;
}
}
// Large devices
@mixin lg {
@media (min-width: #{$screen-lg-min}) {
@content;
}
}
// Extra large devices
@mixin xl {
@media (min-width: #{$screen-xl-min}) {
@content;
}
}
// Extra large devices
@mixin fluid {
@media (min-width: #{$screen-fluid-min}) {
@content;
}
}
`
저는 항상 모바일 우선 접근 방식으로 웹사이트를 구축하므로 가장 작은 화면 크기(xs – 초소형)를 정의할 필요가 없으며 먼저 가장 작은 장치에 대해 SCSS 코드를 작성하고 가장 큰 장치에 대해 다음으로 SCSS 코드를 작성합니다. 때로는 엄격하게 정의된 중단점을 넘어서는 일부 스타일을 정의해야 할 수도 있습니다. mixin을 하나 더 추가해 보겠습니다. 저는 "rwd"라고 했습니다.
`
// _mixins.scss
// Custom devices
@mixin rwd($screen) {
@media (min-width: $screen+'px') {
@content;
}
}
As a parameter
$screen` 모든 화면 크기를 입력할 수 있습니다.예를 들어
`
.container {
padding: 0 15px;
/* 576px window width and more */
@include sm {
padding: 0 20px;
}
/* 992px window width and more */
@include lg {
margin-left: auto;
margin-right: auto;
max-width: 1100px;
}
/* 1400px window width and more */
@include rwd(1400) {
margin-bottom: 20px;
margin-top: 20px;
}
}
`
Reference
이 문제에 관하여(React.js 상용구(SPA)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dennisfrijlink/react-js-boilerplate-spa-32nf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)