React, Strapi, GraphQL을 사용하여 블로그 만들기 - 게시물을 만들고 앞에 표시
이 부분에서 블로그 글을 만들고 목록에 표시하는 방법을 소개합니다.
블로그 게시물을 Strapi에 추가
먼저 터미널에 Strapi를 저장한 디렉토리의 명령을 사용하여 Strapi 환경을 시작합니다.
$ yarn develop
관리자 사용자의 로그인 데이터를 입력할 수 있도록 Strapi 서버를 시작합니다.
현재 왼쪽 사이드바에서 http://localhost:1337/admin/
을 선택하면 내용 유형 목록에 들어갈 수 있습니다. 따라서 Content-Types Builder
을 누르십시오.
이름 Create Content Type
을 입력하고 Continue 키를 누르면 다음 단계에서 컨텐츠 유형에 대한 필드를 선택하라는 메시지가 표시됩니다.
적합한 블로그 기사의 경우 다음 필드가 필요합니다.
$ yarn develop
블로그 게시물 추가
이 예에서는 Strapi 백엔드도 사용합니다.Strapi 서버가 실행되고 있는지 확인BlogPost
합니다.
왼쪽 사이드바 컬렉션 유형 아래의 컬렉션 유형 섹션에서 BlogPosts를 클릭합니다.이렇게 하면 현재 블로그 게시물 목록이 열립니다. 이 단추를 누르면 새 블로그 게시물을 추가할 수 있고, 이 단추를 누르면 새 블로그 게시물을 추가할 수 있습니다.
필요한 경우 모든 필드를 채우고 저장 을 클릭한 다음 게시 를 클릭합니다.
현재, 당신이 수집 유형의 블로그 댓글을 클릭하면, 목록에서 우리의 새로운 댓글을 볼 수 있습니다.
다음에 우리는 응용 프로그램의 앞부분에 블로그 게시물 목록을 표시할 것이다.
프런트엔드에 블로그 게시물 목록 표시
프런트엔드 폴더의 첫 번째 단계를 따른다면, Strapi 백엔드에서 데이터를 가져올 준비가 되어 있습니다.http://localhost:1337
폴더에서 frontend
아래에 src
라는 새 디렉터리를 만들고 queries
라는 새 파일을 만듭니다.
이 파일에서 GraphQL 조회를 작성하여 Strapi에서 필요한 데이터를 가져옵니다.
프런트엔드/src/querys/blogPostsjs
import { gql } from '@apollo/client'
export const GET_BLOGPOSTS = gql`
query {
blogPosts {
id
Title
Body
Tags
CreatedAt
}
}`
네비게이션http://localhost:1337/graphql을 통해 조회를 테스트할 수 있습니다
이 검색을 호출하고 데이터로 테이블을 채우기 위해 구성 요소를 작성해야 합니다. blogPosts.js
내부에 ListBlogPosts.js
프런트엔드/src/components/ListBlogPostsjs
import React from 'react'
import { GET_BLOGPOSTS } from "../queries/blogPosts"
import {useQuery} from "@apollo/client";
function ListBlogPosts() {
const {data, error, loading} = useQuery(GET_BLOGPOSTS)
if(loading) return 'Loading...'
if(error) return `Oops there has been an error: ${error}`
if(data) return console.log(data)
}
export default ListBlogPosts
우리는 그것을 사용하여 우리의 조회가 정말 유효한지 테스트할 것이다.
이 파일을 저장하려면 frontend/src/components
를 사용하여 서버를 실행하고 yarn start
로 이동하면 표시됩니다.이것은 다음과 같습니다.
Oops there has been an error: Error: Forbidden
괜찮아요!이것은 저희와 Strapi의 연결이 유효하다는 것을 보여 줍니다. 기본 오류 처리 프로그램은 유효합니다. 이 데이터를 읽는 것을 금지했기 때문에 이것은 Strapi의 문제입니다.
Strapi 백엔드로 돌아가서 이 문제를 복구하고 Strapi 백엔드를 열고 http://localhost:3000
에 들어가서 Settings
부분에서 Users & Permissions Plugin
를 선택하십시오.모든 체크 상자가 비활성화된 상태에서 Roles
모든 체크 상자를 선택하고 저장하는 것을 보실 수 있습니다.
현재, 리셋 BLOG-POSTS
을 하면 아무것도 보이지 않지만, 콘솔을 열면 우리가 대상을 얻은 것을 볼 수 있습니다.성공!이제 우리 인류가 이해하는 방식으로 이 점을 보여주자.select all
가 있는 행을 삭제하고 이 반환을 생성합니다.
프런트엔드/src/components/ListBlogPostsjs
...
if(error) return `Oops there has been an error: ${error}`
return(
<div>
<h1>List of Blog Posts</h1>
<table>
<thead>
<tr>
<th>ID</th>
<th>Title</th>
<th>Body</th>
<th>Tags</th>
<th>Created</th>
</tr>
</thead>
{data?.blogPosts && data?.blogPosts.length !== 0 ?
<tbody>
{data?.blogPosts.map(({id, Title, Body, Tags, CreatedAt}) => (
<tr key={id}>
<td>{id}</td>
<td>{Title}</td>
<td>{Body}</td>
<td>{Tags}</td>
<td>{CreatedAt}</td>
</tr>
))}
</tbody> : <tbody><tr><td>No Blog Posts to show!</td></tr></tbody>}
</table>
</div>
)
export default ListBlogPosts
저희가 여기서 뭘 했죠?간단한 테이블을 만들고 Strapi 데이터로 채워 넣었습니다.보시다시피 물음표가 있는 http://localhost:3000
을 사용합니다. 이것은 선택할 수 있는 링크입니다. 데이터가 정상적이지 않으면 코드가 이상을 던지기를 원하지 않기 때문입니다.우선, 우리는 블로그 게시물이 있는지, 블로그 게시물이 있는지 검사한다. 우리는 이곳에서 사용한다if(data)...
. 우리는 블로그 게시물 그룹을 얻었기 때문에 블로그 게시물이 있으면data?.
은 0이 되지 않는다.블로그 게시물이 없으면, 우리는 블로그 게시물이 표시할 수 있는 간단한 정보를 표시하고, 블로그 게시물이 있으면 맵 함수를 통해 표에 그것들을 표시합니다.
Strapi 백엔드에서 입력한 모든 데이터를 포함하는 간단한 표를 보았습니다.다음 단계에서, 우리는 이 테이블에 편집과 삭제 옵션을 추가하여, 전방 클라이언트로부터 직접 처리할 수 있도록 할 것이다.
읽어주셔서 감사합니다!
Reference
이 문제에 관하여(React, Strapi, GraphQL을 사용하여 블로그 만들기 - 게시물을 만들고 앞에 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/semirteskeredzic/building-a-blog-with-react-strapi-graphql-create-post-display-it-in-frontend-3e19
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
프런트엔드 폴더의 첫 번째 단계를 따른다면, Strapi 백엔드에서 데이터를 가져올 준비가 되어 있습니다.
http://localhost:1337
폴더에서 frontend
아래에 src
라는 새 디렉터리를 만들고 queries
라는 새 파일을 만듭니다.이 파일에서 GraphQL 조회를 작성하여 Strapi에서 필요한 데이터를 가져옵니다.
프런트엔드/src/querys/blogPostsjs
import { gql } from '@apollo/client'
export const GET_BLOGPOSTS = gql`
query {
blogPosts {
id
Title
Body
Tags
CreatedAt
}
}`
네비게이션http://localhost:1337/graphql을 통해 조회를 테스트할 수 있습니다이 검색을 호출하고 데이터로 테이블을 채우기 위해 구성 요소를 작성해야 합니다.
blogPosts.js
내부에 ListBlogPosts.js
프런트엔드/src/components/ListBlogPostsjsimport React from 'react'
import { GET_BLOGPOSTS } from "../queries/blogPosts"
import {useQuery} from "@apollo/client";
function ListBlogPosts() {
const {data, error, loading} = useQuery(GET_BLOGPOSTS)
if(loading) return 'Loading...'
if(error) return `Oops there has been an error: ${error}`
if(data) return console.log(data)
}
export default ListBlogPosts
우리는 그것을 사용하여 우리의 조회가 정말 유효한지 테스트할 것이다.이 파일을 저장하려면
frontend/src/components
를 사용하여 서버를 실행하고 yarn start
로 이동하면 표시됩니다.이것은 다음과 같습니다.Oops there has been an error: Error: Forbidden
괜찮아요!이것은 저희와 Strapi의 연결이 유효하다는 것을 보여 줍니다. 기본 오류 처리 프로그램은 유효합니다. 이 데이터를 읽는 것을 금지했기 때문에 이것은 Strapi의 문제입니다.Strapi 백엔드로 돌아가서 이 문제를 복구하고 Strapi 백엔드를 열고
http://localhost:3000
에 들어가서 Settings
부분에서 Users & Permissions Plugin
를 선택하십시오.모든 체크 상자가 비활성화된 상태에서 Roles
모든 체크 상자를 선택하고 저장하는 것을 보실 수 있습니다.현재, 리셋
BLOG-POSTS
을 하면 아무것도 보이지 않지만, 콘솔을 열면 우리가 대상을 얻은 것을 볼 수 있습니다.성공!이제 우리 인류가 이해하는 방식으로 이 점을 보여주자.select all
가 있는 행을 삭제하고 이 반환을 생성합니다.프런트엔드/src/components/ListBlogPostsjs
...
if(error) return `Oops there has been an error: ${error}`
return(
<div>
<h1>List of Blog Posts</h1>
<table>
<thead>
<tr>
<th>ID</th>
<th>Title</th>
<th>Body</th>
<th>Tags</th>
<th>Created</th>
</tr>
</thead>
{data?.blogPosts && data?.blogPosts.length !== 0 ?
<tbody>
{data?.blogPosts.map(({id, Title, Body, Tags, CreatedAt}) => (
<tr key={id}>
<td>{id}</td>
<td>{Title}</td>
<td>{Body}</td>
<td>{Tags}</td>
<td>{CreatedAt}</td>
</tr>
))}
</tbody> : <tbody><tr><td>No Blog Posts to show!</td></tr></tbody>}
</table>
</div>
)
export default ListBlogPosts
저희가 여기서 뭘 했죠?간단한 테이블을 만들고 Strapi 데이터로 채워 넣었습니다.보시다시피 물음표가 있는 http://localhost:3000
을 사용합니다. 이것은 선택할 수 있는 링크입니다. 데이터가 정상적이지 않으면 코드가 이상을 던지기를 원하지 않기 때문입니다.우선, 우리는 블로그 게시물이 있는지, 블로그 게시물이 있는지 검사한다. 우리는 이곳에서 사용한다if(data)...
. 우리는 블로그 게시물 그룹을 얻었기 때문에 블로그 게시물이 있으면data?.
은 0이 되지 않는다.블로그 게시물이 없으면, 우리는 블로그 게시물이 표시할 수 있는 간단한 정보를 표시하고, 블로그 게시물이 있으면 맵 함수를 통해 표에 그것들을 표시합니다.Strapi 백엔드에서 입력한 모든 데이터를 포함하는 간단한 표를 보았습니다.다음 단계에서, 우리는 이 테이블에 편집과 삭제 옵션을 추가하여, 전방 클라이언트로부터 직접 처리할 수 있도록 할 것이다.
읽어주셔서 감사합니다!
Reference
이 문제에 관하여(React, Strapi, GraphQL을 사용하여 블로그 만들기 - 게시물을 만들고 앞에 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/semirteskeredzic/building-a-blog-with-react-strapi-graphql-create-post-display-it-in-frontend-3e19텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)