开发环境需要预先安装Node.js运行环境与npm包管理工具。通过终端执行以下命令创建项目目录结构:
mkdir react-graphql-blogcd react-graphql-blognpm init -y
依赖模块 | 功能说明 | 版本要求 |
---|---|---|
next | 服务端渲染框架 | ^12.0.0 |
graphql | 数据查询语言 | ^16.0.0 |
apollo-client | 状态管理工具 | ^3.5.0 |
在pages目录下创建graphql接口配置文件,实现CosmicJS数据源对接:
const { ApolloClient, InMemoryCache } = require('@apollo/client');const client = new ApolloClient({ uri: 'https://graphql.cosmicjs.com/v1', cache: new InMemoryCache()});
构建博客文章列表组件时,采用React Hooks管理组件状态:
import { useQuery } from '@apollo/client';const GET_POSTS = gql` query { posts { title content createdAt } }`;function PostList() { const { loading, error, data } = useQuery(GET_POSTS); if (loading) returnLoading...
; if (error) returnError :(
; return data.posts.map(({ title, content }) => ({title}
{content}
));}