1.什么是GraphQL
GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。 GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具。
2.为什么需要它?
一图抵万言:
3.怎么做?
1.一图抵万言:
解释:你需要的东西都在这段代码里:
{
site {
siteMetadata {
title
}
}
}
2.怎么套到组件里?
src>components>Header.js里面,
import { StaticQuery, graphql } from 'gatsby'
import React from "react"
const TitleAndDescription = ({ data }) => {
//这里的数据是下面查出来的
const title = data.site.siteMetadata.title;
const description = data.site.siteMetadata.description;
return (
<div style={{
display: 'flex',
flexDirection: 'column',
alignItems: 'center'
}}>
<h2>{title}</h2>
<p>{description}</p>
</div>
);
}
//这里是所有数据,传到了TitleAndDescription组件里,react组件数据传递
const Header = () => {
return (
<StaticQuery
query={graphql`
query{
site {
siteMetadata {
title,
description,
}
}
}
`}
render={data => <TitleAndDescription data={data} />}
/>
)
}
export default Header
这里是所有数据,传到了TitleAndDescription组件里,react组件数据传递,我这么就为了看着舒服一点。
3.嵌套Header
将Header组件扔到 pages下面的index.js里面:
import React from "react"
import Header from '../components/header'
const Layout = () => {
return (
<div>
<Header />
</div>
)
}
export default Layout;
打开首页,看到网站的描述就大功告成了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。