[Gatsby] Page QueryFrontend/React2023. 2. 1. 09:42
Table of Contents
반응형
gatsby-source-filesystem
로컬 파일 시스템에서 Gatsby 애플리케이션으로 데이터를 sourcing 하기 위한 Gatsby 소스 플러그인입니다.
플러그인은 파일에서 파일 노드를 생성합니다. 다양한 "transformer" 플러그인은 파일 노드를 다양한 다른 유형의 데이터로 변환할 수 있습니다.
Markdown, JSON, 이미지, YAML, CSV 및 기타 수집 가지 데이터 유형이 지원됩니다.
설치
$ npm install gatsby-source-filesystem
사용 방법
- 예시로
blog-posts
디렉토리를 생성하고 디렉터리 안에post1.md
,post2.md
파일을 생성합니다. gatsby-config.ts
파일의 plugin 부분을 아래와 같이 수정합니다. path 속성 값에는 생성한blog-posts
디렉토리를 입력합니다.
// gatsby-config.js
import type { GatsbyConfig } from 'gatsby';
const config: GatsbyConfig = {
...
plugins: [
{
resolve: `gatsby-source-filesystem`,
options: {
path: `${__dirname}/blog-posts`,
},
},
],
};
export default config;
- GraphQL 쿼리를 해보면
nodes
에 생성한 파일명들이 조회됩니다.
query MyQuery {
allFile {
nodes {
name
}
}
}
// 결과
{
"data": {
"allFile": {
"nodes": [
{
"name": "post1"
},
{
"name": "post2"
}
]
}
},
"extensions": {}
}
index.tsx
파일에서 쿼리를 추가하고 별다른 작성 없이 props에 data를 선언하기만 하면 Gatsby가 자동으로 쿼리 결과를 가져올 수 있도록 도와줍니다. TypeScript를 사용한다면PageProps<Queries.BlogTitlesQuery>
타입을 지정합니다.
import { graphql, PageProps } from 'gatsby';
import React from 'react';
export default function IndexPage({ data }: PageProps<Queries.BlogTitlesQuery>) {
console.log(data);
return (
<ul>
{data.allFile.nodes.map((file, index) => (
<li key={index}>{file.name}</li>
))}
</ul>
);
}
export const query = graphql`
query BlogTitles {
allFile {
nodes {
name
}
}
}
`;
// data object
{
"allFile": {
"nodes": [
{
"name": "post1"
},
{
"name": "post2"
}
]
}
}
결론
위와 같이 gatsby-source-filesystem 플러그인을 사용하여 Gatsby가 생성한 파일들을 관찰할 수 있게 허용해 주고 쿼리를 통해 더 많은 정보를 조회할 수 있도록 도와줍니다.
참고
반응형
'Frontend > React' 카테고리의 다른 글
React 컴포넌트 작성, 전문가처럼! (0) | 2024.11.21 |
---|---|
React.js 살펴보기: 초보자 가이드 (0) | 2024.06.13 |
[Gatsby] useStaticQuery(정적 쿼리 사용) (0) | 2023.01.30 |
[Gatsby] Head API 사용 방법 (0) | 2023.01.26 |
[Gatsby] Layout Components (0) | 2023.01.18 |
@고지니어스 :: 규니의 개발 블로그
IT 기술과 개발 내용을 포스팅하는 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!