찾다
웹 프론트엔드CSS 튜토리얼화성 테마 : Frontity의 헤드리스 워드 프레스 테마에 대한 깊은 모습

화성 테마 : Frontity의 헤드리스 워드 프레스 테마에 대한 깊은 모습

이 기사는 Automattic이 Frontity와 그 팀을 인수하기 전에 시작되었습니다. Frontity의 설립자들은 프레임 워크를 커뮤니티 중심 프로젝트로 전환하여 안정성, 버그없는 작동 및 포괄적 인 문서를 보장 할 계획입니다. 다른 오픈 소스 프로젝트와 마찬가지로 Frontity는 무료로 유지되며 지역 사회 기여 및 개선 기회를 제공합니다. 자세한 내용은 FAQ에서 제공됩니다.

이전 기사는 Frontity가있는 헤드리스 WordPress 사이트 작성에 대해 자세히 설명하고 파일 구조를 간단히 조사했습니다. 이 기사는 @frontity/mars-theme 패키지 (MARS 테마)를 탐구하여 사용자 정의에 대한 단계별 안내서를 제공합니다. 화성 테마는 WordPress의 20 개 스물 11과 비슷한 Frontity의 기본 테마 인 훌륭한 출발점이됩니다.

"빌딩 블록"을 포함하여 화성 테마의 핵심 구성 요소를 살펴보고 패키지에 포함 된 다양한 구성 요소를 검사합니다. 우리는 실용적인 예제로 기능, 운영 및 스타일을 다룰 것입니다.

시작하자!

목차

  • 소개 : Frontity의 빌딩 블록 이해
  • 섹션 1 : 화성 테마 구조 탐색
  • 섹션 2 : 목록 구성 요소 활용
  • 섹션 3 : 링크, 메뉴 및 특집 이미지
  • 섹션 4 : 정면 프로젝트 스타일
  • 섹션 5 : Frontity Mars 테마 사용자 정의
  • 섹션 6 : 자원 및 승인
  • 결론 : 최종 생각과 반성

Frontity의 기본 구성 요소

이전 기사에서 Frontity Project 파일 구조를 다시 방문하여 Frontity의 핵심 구성 요소를 강조 표시합니다 : frontity.settings.js , package.jsonpackages/mars-theme 폴더. package.json 파일은 이름, 설명, 저자 및 종속성을 포함한 중요한 프로젝트 정보를 제공합니다. 주요 패키지는 다음과 같습니다.

  • frontity : Frontity App Development Methods 및 CLI를 포함하는 주요 패키지.
  • @frontity/core : 번들링, 렌더링, 병합, 전달 및 서빙을 처리합니다. 직접 액세스는 일반적으로 앱 개발에 필요하지 않습니다. 전체 목록은 Frontity 문서에 있습니다.
  • @frontity/wp-source : WordPress REST API에 연결하여 화성 테마의 데이터를 가져옵니다.
  • @frontity/tiny-router : window.history 및 Routing을 관리합니다.
  • @frontity/html2react : html 섹션을 반응 구성 요소로 바꾸기 위해 프로세서를 사용하여 HTML을 반응으로 변환합니다.

Frontity 's Core 또는 @frontity/package ( "빌딩 블록"이라고도 함)에는 @frontity/components 의 유용한 React 구성 요소 라이브러리, Link , Auto Prefetch , Image , Props , Iframe 및 기타 기능 및 객체와 같은 구성 요소를 Switch 구성 요소가 포함됩니다. 자세한 설명 및 구문 정보는 패키지 참조 API에 있습니다.

Frontity Documentation은 프로젝트 시작 프로세스 @frontity/core 설명합니다. frontity.settings.js 에 정의 된 모든 패키지 세트 @frontity/file-settings 이 상점을 사용하면 Frontity의 주 관리자 인 @frontity/connect 사용하여 개발 중에 다양한 패키지의 상태 및 작업에 액세스 할 수 있습니다.

다음으로,이 빌딩 블록이 화성 테마 내에서 사용되는 방법을 살펴보기 위해 헤드리스 워드 프레스 엔드 포인트가있는 기능적 프론티피 프로젝트를 만듭니다.

섹션 1 : 화성 테마 구조 이해

사용자 정의 전에 화성 테마 ( @frontity/mars-theme ) 파일 구조에 익숙해 봅시다.

 <code>packages/mars-theme/ |__ src/ |__ index.js |__ components/ |__ list/ |__ index.js |__ list-item.js |__ list.js |__ pagination.js |__ featured-media.js |__ header.js |__ index.js |__ link.js |__ loading.js |__ menu-icon.js |__ menu-model.js |__ menu.js |__ nav.js |__ page-error.js |__ post.js |__ title.js</code>

Mars 테마의 주요 구성 요소는 /src/index.js , src/list/index.jssrc/components/index.js 입니다. Frontity Documentation은 이러한 구성 요소가 정의되고 상호 연결되는 방식에 대한 자세한 설명을 제공합니다. 루트, 테마 및 목록의 세 가지 가장 중요한 세 가지에 중점을 두겠습니다.

테마 루트 구성 요소 ( /src/index.js )

src/index.js 파일 (테마의 루트)이 중요합니다. a<div> 사이트 마크 업에서 모든 설치된 패키지의 루트를 주입합니다. 정면 테마는 <code>root 및 기타 필요한 패키지를 DOM으로 내 보냅니다. Frontity Documentation은 슬롯을 사용하여이를 보여줍니다. Mars 테마 패키지의 예는 루트 구성 요소를 초기화하는 방법을 보여줍니다.

 // mars- 테마/src/components/index.js
// ... (간결성을 위해 코드가 생략 됨) ...

루트 구성 요소는 roots , fills , state , actionslibraries 포함한 패키지를 내 보냅니다. 루트 구성 요소에 대한 자세한 내용은 Frontity 문서에 있습니다.

테마 구성 요소 ( /src/components/index.js )

Frontity 테마 구성 요소는 Theme 네임 스페이스로 내보낸 기본 루트 레벨 구성 요소입니다. @frontity/connect 함수로 랩핑되어 상태, statelibraries 소품 actions 대한 액세스 권한을 제공합니다. 이를 통해 테마 구성 요소는 상태를 읽고, 동작을 사용하며, 다른 패키지의 코드를 활용할 수 있습니다.

 // mars- 테마/src/components/index.js
// ... (간결성을 위해 코드가 생략 됨) ...

이 예는 화성 테마의 /src/components/index.js 에서 state.source.get() 사용하여 목록 및 게시물과 같은 구성 요소를위한 데이터를 검색합니다.

섹션 2 : 목록 구성 요소 작업

이전 섹션에서는 테마 수준 구성 요소를 다루었습니다. 이제 특정 구성 요소 : List를 살펴 보겠습니다.

목록 구성 요소는 코드 분할을 위해 @loadable/components 사용하여 src/components/list/index.js 에서 내보내고 있습니다. 구성 요소는 사용자가 목록을 볼 때만로드됩니다. 단일 게시물을 볼 때 렌더링하지 않습니다.

게시물 목록 표시

src/components/list/list.js 구성 요소는 state.source.get(link) 및 해당 items 필드를 사용하는 게시물 목록을 렌더링합니다.

 // src/components/list/list.js
// ... (간결성을 위해 코드가 생략 됨) ...

connect 함수는 글로벌 상태에 대한 액세스를 제공합니다. list-item.jspagination.js 도 가져옵니다.

게시물 목록을 작성합니다

Pagination 구성 요소 ( src/components/list/pagination.js )를 통해 사용자는 게시물 페이지를 탐색 할 수 있습니다.

 // src/components/list/pagination.js
// ... (간결성을 위해 코드가 생략 됨) ...

connect 함수는 글로벌 상태 및 동작에 대한 액세스를 부여합니다.

단일 게시물 표시

Post 구성 요소는 단일 게시물과 페이지를 표시합니다. 게시물에는 메타 데이터 (저자, 날짜, 카테고리 등)가 포함 된 구조가 유사합니다.

 // src/components/post.js
// ... (간결성을 위해 코드가 생략 됨) ...

조건부 렌더링은 메타 데이터가 게시물에 대해서만 표시되도록하고 주제 설정에 따라 주요 이미지가 표시됩니다.

섹션 3 : 링크, 메뉴 및 특집 이미지

목록 구성 요소는 게시물을 표시하는 데 중요합니다. 다른 필수 구성 요소를 살펴 보겠습니다.

MarsLink 구성 요소 ( src/components/link.js )는 @frontity/components/link component 주변의 래퍼입니다.

 // src/components/link.js
// ... (간결성을 위해 코드가 생략 됨) ...

링크를 클릭 할 때 모바일 메뉴를 닫는 핸들러가 포함되어 있습니다.

Frontity 메뉴 ( src/components/nav.js )

Nav 구성 요소 ( src/components/nav.js )는 frontity.settings.js 또는 Frontity State에 정의 된 메뉴 항목을 반복하여 URL과 일치하고 헤더 내에 구성 요소를 표시합니다.

 // src/components/nav.js
// ... (간결성을 위해 코드가 생략 됨) ...

connect 기능은 상태에 대한 액세스를 제공합니다. 모바일보기에는 추가 메뉴 구성 요소 ( menu.jsmenu-modal.js )가 제공됩니다.

추천 미디어는 루트 구성 요소의 theme.state.featured 에 정의되어 있습니다. 전체 코드는 /src/components/featured-media.js 에 있습니다.

섹션 4 : 정면 프로젝트 스타일

전면 스타일은 WordPress와 다릅니다. Frontity는 CSS-in-JS 라이브러리 인 스타일의 경쟁자와 감정으로 제작 된 재사용 가능한 구성 요소를 제공합니다.

스타일링 컴포넌트 사용

스타일의 구성 요소는 감정의 styled 기능을 사용하여 만들어집니다. 예를 들어:

 // 버튼 스타일 구성 요소 작성
"Frontity"에서 {Styled} 가져 오기;

const button = styled.div`
  배경 : Lightblue;
  너비 : 100%;
  텍스트 정렬 : 센터;
  색상 : 흰색;
`;;

CSS 소품 사용

css 소품은 템플릿 리터럴을 사용하여 인라인 스타일을 허용합니다.

 / * CSS 소품 사용 */
"Frontity"에서 {CSS} 가져 오기;

const pinkbutton = () => (
  <div css="{css`background:" pink>
    내 분홍색 버튼
  </div>
);

사용<global></global> 요소

그만큼<global></global> 구성 요소는 사이트 전체 스타일을 적용합니다.

 // ... (간결성을 위해 코드가 생략 됨) ...

섹션 5 : Frontity Mars 테마 사용자 정의

이 섹션에서는 화성 테마를 사용자 정의하는 것을 보여줍니다. (간결성을 위해 생략 된 자세한 예제 및 코드 스 니펫; 완전한 코드 예제는 원래 응답을 참조하십시오.) 주요 사용자 정의에는 다음이 포함됩니다.

  • 테마 패키지의 이름 바꾸기.
  • 동적 메뉴 페치 (WP-Rest-API V2 메뉴 플러그인 사용)를 사용한 리팩토링 내비게이션.
  • 더 나은 구성을 위해 파일 구조 수정.
  • 사용자 지정 바닥기 구성 요소 추가.
  • 테마 헤더 사용자 정의.
  • 첨가<global></global> 스타일 구성 요소.
  • 유체 타이포그래피 구현.
  • 웹 폰트 추가.
  • 스타일링 페이지 및 게시물 (Gutenberg 블록 스타일 포함).

섹션 6 : 자원 및 승인

(Brevity에 대한 자원 및 크레딧 목록; 전체 목록의 원래 응답을 참조하십시오.)

결론 : 최종 생각과 반성

이러한 Frontity와 Mars 테마에 대한 탐구는 초보자 친화 성, 낮은 유지 보수 및 실험 블록 테마와의 호환성을 강조합니다. 그러나 현재 호스팅 비용과 문서 개선 영역이 주목됩니다. WordPress 블록 테마의 진화와 함께 Gatsby와 Frontity를 사용한 헤드리스 사이트 개발에 대한 추가 탐색이 계획되어 있습니다.

위 내용은 화성 테마 : Frontity의 헤드리스 워드 프레스 테마에 대한 깊은 모습의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
드래그 ' 및 Droppin ' 반응에서드래그 ' 및 Droppin ' 반응에서Apr 17, 2025 am 11:52 AM

React Ecosystem은 모두 드래그 앤 드롭의 상호 작용에 중점을 둔 많은 라이브러리를 제공합니다. 우리는 React-dnd, React-beautiful-dnd를 가지고 있습니다.

빠른 소프트웨어빠른 소프트웨어Apr 17, 2025 am 11:49 AM

최근 빠른 소프트웨어에 대해 놀랍도록 상호 연결된 것들이있었습니다.

배경 클립이있는 중첩 된 그라디언트배경 클립이있는 중첩 된 그라디언트Apr 17, 2025 am 11:47 AM

나는 자주 배경 클립을 사용한다고 말할 수 없습니다. I ' D WART IT IT는 일상적인 CSS 작업에서 거의 사용되지 않았습니다. 그러나 나는 Stefan Judis의 게시물에서 그것을 상기시켰다.

React 후크와 함께 requestAnimationFrame 사용React 후크와 함께 requestAnimationFrame 사용Apr 17, 2025 am 11:46 AM

requestAnimationFrame을 사용하여 애니메이션은 쉬워야하지만 React의 문서를 철저히 읽지 않으면 몇 가지 문제가 발생할 수 있습니다.

페이지 상단으로 스크롤해야합니까?페이지 상단으로 스크롤해야합니까?Apr 17, 2025 am 11:45 AM

아마도이를 사용자에게 제공하는 가장 쉬운 방법은 요소의 ID를 대상으로하는 링크 일 것입니다. 그래서 ...처럼 ...

최고 (GraphQL) API는 귀하가 작성한 것입니다최고 (GraphQL) API는 귀하가 작성한 것입니다Apr 17, 2025 am 11:36 AM

들어보세요, 나는 GraphQL 전문가가 아니지만 함께 일하는 것을 좋아합니다. 프론트 엔드 개발자로서 데이터를 노출시키는 방법은 꽤 멋지다. 메뉴와 같습니다

주간 플랫폼 뉴스 : 텍스트 간격 북마크, 최상위 차단, 새로운 앰프 로딩 표시기주간 플랫폼 뉴스 : 텍스트 간격 북마크, 최상위 차단, 새로운 앰프 로딩 표시기Apr 17, 2025 am 11:26 AM

이번 주에 타이포그래피를 검사하기위한 편리한 북마크 인 Roundup, JavaScript 모듈과 Facebook의 Facebook 등을 어떻게 가져 오는지 땜질하기 위해 대기하는 편리한 북마크 인 Roundup과 Facebook의

테두리 반경을 보존하는 동안 상자를 확장하는 다양한 방법테두리 반경을 보존하는 동안 상자를 확장하는 다양한 방법Apr 17, 2025 am 11:19 AM

나는 최근 코데 펜에서 흥미로운 변화를 발견했다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경