LEVEL UP to React 이후 웹폰트와 SCSS 스타일시트는 어떻게 사용하나요?
HTML, CSS 및 JavaScript를 처음 배웠을 때:
Roboto
를 어떻게 사용하셨습니까? 아마도 <link>
의 index.html
태그나 CSS 스타일 시트의 @import
문을 통해? <link>
에 index.html
태그가 있는 컴파일된 CSS 파일을 포함해야 합니까? 나는 위에서 설명한대로 일을하도록 배웠습니다. 내가 React로 "레벨 업"했을 때, 나는 계속 같은 일을 했다. 웹 글꼴을 로드하고 SCSS 스타일시트를 가져오는 이러한 "고전적인"방법은 React의 모범 사례가 아닙니다.
create-react-app 프로젝트에 SCSS 스타일시트를 어떻게 추가하나요?
create-react-app documentation에 따르면:
node-sass
를 설치해야 합니다. # example from create-react-app documentation
$ npm install node-sass --save
$ # or
$ yarn add node-sass
@import
문을 통해 직접 JS에서 SCSS 파일을 가져올 수 있습니다. // app.js
import "./app.scss"
즉, "전통적인"접근 방식(처음에 언급한 대로)과 달리 Live Sass Compiler과 같은 컴파일러가 더 이상 필요하지 않습니다.
create-react-app guide on "adding a style sheet"에서 인용:
This project setup uses Webpack for handling all assets.
즉, Webpack이 컴파일을 처리하므로 컴파일러를 사용하여 직접 수행할 필요가 없습니다.
create-react-app 프로젝트에서 웹 글꼴을 로드하는 방법은 무엇입니까?
다음 예에서는 Google Fonts
Roboto
을 사용합니다.Google 글꼴의 두 가지 선택 항목에 익숙할 것입니다.
<link>
의 index.html
태그를 통해 다음 그림의 왼쪽 라디오 버튼에서 선택할 수 있습니다. @import
콘텐츠를 복사하여 다음 그림의 오른쪽 라디오 버튼에서 선택한 SCSS 또는 CSS 파일에 붙여넣습니다.그렇다면 어떤 것을 선택해야 하며 어떤 것이 더 나은 방법일까요? 하나씩 토론해 보자:
1. SCSS/CSS 파일의 @import 문
SCSS/CSS 파일에서
@import
문을 사용하는 경우 다음과 같이 해당 SCSS/CSS 파일을 JavaScript 파일로 가져와야 합니다(SCSS의 경우 먼저 node-sass
를 설치하는 것을 잊지 마십시오).// app.scss or app.css
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@500&display=swap');
// app.js
import "./app.scss" // if you are using SCSS
import "./app.css" // if you are using CSS
this StackOverflow answer에 따르면
@import
문을 통해 SCSS/CSS 파일로 웹 글꼴을 가져오면 "글꼴이 빌드 파이프라인을 통과하는지 확인"합니다. 즉, 컴파일할 때 Webpack이 "(글꼴) 파일이 실제로 존재하는지 확인"한다는 의미입니다. , 따라서 이 답변에 따라 권장되는 방법입니다.2. 공용 폴더 내 index.html의 <link> 태그
위의 동일한 StackOverflow answer에 따르면. "클래식"방식으로도 할 수 있지만 이 방식으로 로드된 글꼴이 "빌드 파이프라인을 통과하지 않기"때문에 권장되지 않습니다.
이제 명확해야 합니다. 항상
@import
를 사용합니다. 맞습니까? 아직 결론을 내리기에는 그리 빠르지 않습니다. <link>
태그를 사용하면 속도상의 이점이 있습니다.Google Developers의 this article에 따르면:
Google Fonts provides the option to load fonts via
<link>
tags or an@import
statement. The<link>
code snippet includes apreconnect
resource hint and therefore will likely result in faster stylesheet delivery than using@import
version.
그럼 우리는 어느 쪽을 따라야 할까요?
지금 내 결론
저는 아직 이 시점에서 최적화에 대해 생각할 만큼 충분히 "레벨 업"되지 않았습니다. 그래서 지금은 내 SCSS에서 링크와 사용
@import
모두에서 조언을 받고 있습니다.웹 글꼴을 로드하는 다른 방법
위에서 설명한 두 가지 방법은 결코 완전하지 않습니다. 다음과 같이 내가 포함하지 않은 웹 글꼴을 로드하는 다른 방법이 있습니다.
@font-face
Webfont
npm 또는 yarn을 통해 설치할 수 있는 패키지입니다. 나는 내가 알지 못하는 일을 하는 다른 (더 나은) 방법이 있다고 확신합니다. 더 잘 알고 있다면 아래에 제안을 남겨주세요.
글꼴은 광범위한 주제입니다.
이 기사를 조사할 때 글꼴이 광범위한 주제라는 것을 알았습니다. 때로는 답변/기사가 서로 충돌하여 내가 쓴 내용이 100% 정확하다고 확신할 수 없습니다. 그러니 잘못된 부분이 있으면 지적해주시면 감사하겠습니다.
리소스 및 추가 정보
Reference
이 문제에 관하여(LEVEL UP to React 이후 웹폰트와 SCSS 스타일시트는 어떻게 사용하나요?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/1codingguy/how-to-use-web-fonts-and-scss-stylesheet-after-level-up-to-react-3pch텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)