我们将只使用一个 transformer 插件(用于 Markdown ),所以让我们安装它。...我们已经在使用 createPages API 了( Gatsby 将在构建时通过注入的参数来调用)。我们还将获取我们先前创建的 blogPostTemplate 的路径。...每个公开的属性(在节点上)都可以用于查询。我们正在有效地创造一个GraphQL数据库,然后我们可以通过页面级的GraphQL查询对它进行查询。...此外,可以使用可选属性 context来注入数据并使其可用于博客文章模板组件通过注入props(用各种 props 来查看每一个可用的 prop!)...CLI,用于在预定义的 Gatsby 结构和 frontmatter、日期、路径等方面搭建一个博客帖子。
为什么用 GraphQL 在上一节介绍了选择 Gatsby 的原因,其中提到了 Gatsby 使用 GraphQL 。大家可能会有疑惑,不是建静态博客么,怎么会有 GraphQL?...带魔法的 GraphQL 这里也是 Gatsby 的第一个坑。...在 Gatsby 中,根据 js 文件的位置不同,使用 GraphQL 有两种形式,且 Gatsby 对其做了魔法,在 src/pages 下的页面可以直接 export GraphQL 查询,在其它页面需要用...Debug GraphQL Gatsby 魔法带来的另外一个坑是 GraphQL 报错信息不全,可能会默默被吞掉,也可能无法定位到最终文件。...这个方法接受一个配置参数,其中的 path 域代表了生成页面的路径。
Gatsby.js (可以说)是目前最好的开源静态站点生成器,所以让我们来看看它。 Gatsby.js是一个基于response .js的用于生成静态网站的开源框架。...gatsby-browser.js 此文件用于实现Gatsby浏览器api。对于这个项目,我们不需要在这个文件中放入任何东西。 gatsby-config.js 这个文件是网站的基本配置。...gatsby-transformer-sharp和gatsby-transformer-remark也是重要的插件。它们可以自动将markdown 文件转换为可用于web格式。...gatsby-node.js 此文件用于实现api。这些api可以使用GraphQL从数据层中获取数据。在处理程序化页面生成时,我们将更深入地研究这个文件的内容。...gatsby-ssr.js 此文件用于实现服务器端选然的api。我们不会在这个项目中使用。 布局设置 网站布局是一个非常重要的方面。
1.查数据 注意,这里跟前面不一样了,我用gatsby-node.js这个文件去提供数据,没有什么为什么,规定,照做就好。...const path = require("path"); exports.createPages = ({ actions, graphql }) => { const { createPage...pathSlug: path }, }) }) }) } 很清晰明显,这里就说一点我传递了一个参数...2.创建内容页模板 在src>templates下创建blogPost.js import React from "react" import { graphql,Link } from...'gatsby' const Template = ({ data, pageContext }) => { const {next,prev} = pageContext;
1.查数据 注意,这里跟前面不一样了,我用gatsby-node.js这个文件去提供数据,没有什么为什么,规定,照做就好。...const path = require("path"); exports.createPages = ({ actions, graphql }) => { const { createPage...} = actions const blogPostTemplate = path.resolve(`src/templates/blogPost.js`) return graphql...blogPostTemplate, context: { pathSlug: path }, }) }) }) } 很清晰明显,这里就说一点我传递了一个参数...2.创建内容页模板 在src>templates下创建blogPost.js import React from "react" import { graphql,Link } from 'gatsby
JAMStack的Web应用会通过JavaScript给后端API发送AJAX请求或者GraphQL query,后端API会以某种格式(一般是JSON)返回数据给前端来实现一些用户交互。...简单来说,Gatsby是一个可以让开发者使用React,GraphQL等现代技术快速开发网站的静态网站生成器(static-site generator)。...更好的开发者体验 拿我们前面提到的Gatsby来举例,它就允许我们使用一些现代的前端技术来进行开发,例如React,Styled-components和GraphQL等,这些都是我们前端开发者十分熟悉的技术了...这类应用的内容除了频繁更新之外,还有就是动态内容多于静态内容,例如用户的主页只会展示他关注的人发表的动态,所以也不适合使用JAMStack。 一些不需要SEO的应用。...由于JAMStack需要我们每次都构建出所有的静态资源,所以对于那些静态内容很多的应用(例如页面数超过50k)的话,每次构建应用都需要大量的时间,因此这种类型的网站也不适合用JAMStack。
除了使用Node之外,Gatsby还对客户端使用了response .js。使用反应物.js使Gatsby能够受益于框架呈现DOM的方法,因为组件成为焦点。...Gatsby还支持GraphQL,这意味着数据查询变得更加容易。由于有了GraphQL, Gatsby可以生成能够访问和利用来自不同来源的数据的站点。...它支持GraphQL。 大量的插件都是可用的——谈谈庞大的用户社区的好处吧。 解释性教程不难找到,文档也很棒。 缺点 使用Gatsby需要大量的JavaScript、React和GraphQL知识。...由于其速度快和各种内置功能,您会发现Hugo被用于生成博客和文档。它得到了广泛的应用,并继续得到改善。 优点 它的速度非常快,任何东西都无法与之匹敌。 有很多内置的功能,你几乎不需要第三方插件。...与Hugo一样,Jekyll也附带一个HTTP服务器,通常用于生成博客。它也经常用于生成投资组合。 虽然Jekyll对页面内容使用Markdown,但它也使用液体模板语言来处理页面。
插件 API,用于添加全局级别的功能,还有一个针对文档优化的默认主题。...与 React 中的 Gatsby 相似,Gridsome 是一个数据驱动的框架。Gridsome 使用一个 GraphQL 层从各种源中获取内容,然后从中动态生成页面。...GraphQL 充当 Gridsome 的内容管理系统。...同样,你可以使用 gridsome build 来构建你的网站,它将生成可用于生产环境的优化版 HTML 文件。...与 Gatsby 和 Gridsome 类似,Saber 允许你使用你想用的数据来创建静态网站。你可以从不同的文件系统中提取数据。有了 Saber,你就不用操心 GraphQL 了。
它旨在帮助那些编程经验很少的设计人员将所有工作都用于创建功能界面。 此外,Vue.js支持声明式呈现,异步DOM更新,双向数据绑定,以及严格遵守Web组件规范和HTML模板的简单集成。...这个框架经常用于构建动态的移动应用,因为它使用了双向数据绑定,这种方法增加了带有丰富动画元素的应用程序的响应能力。 现在,让我们来讨论一下Angular的缺点。...Gatsby 如果你的预算比较紧张,但是同时又希望在你的项目中只使用高级技术,那么你一定要尝试 Gatsby。Gatsby 是 Kyle Matthews 为静态网站的创建而构建的新型解决方案。...从1.0版本开始,Gatsby 使用了上面提到的 GraphQL。因此,在构建过程,它可以从多个 GraphQL API 中获得数据,然后使用它们创建一个完全静态的 React 客户端应用程序。...静态网站生成器专门用于解决此问题,Gatsby 是其中最好的,感谢 GraphQL。我们坚持认为,任何在职的前端工程师在 2018 年至少都能掌握这个流行工具的基本知识。
它有一个由 GraphQL 支持的数据层,并将所有内容输出到静态文件,使你可以在几乎任何地方托管它。...当我第一次听说我可以编写 React 并使用这个很酷的 GraphQL 新玩意儿,同时还能输出不需要 JavaScript 的静态页面时,我很想尝试它一下。...从网站 /Web 应用的大致区别来看,React 是用于构建 Web 应用的,这种应用需要有响应用户输入或实时获取数据的交互式 UI;而博客只是一个网站而已。...https://www.gatsbyjs.org/packages/gatsby-plugin-no-javascript/ 你可以继续编写 react 组件和 GraphQL,甚至可以使用 CSS-in-JS...我选择使用 Eleventy 来构建自己的网站,但我知道这种方法并不适合所有人——完全按照自己的意愿来构建某些东西可能是很麻烦的事情。
,它在后台使用React和GraphQL。...您将学到什么 在本教程中,您将学习如何利用Gatsby构建出色的博客,以便在使用React和GraphQL的同时编写自己的文章。...技术栈和功能 Gatsby React GraphQL Plugins and themes MDX/Markdown Bootstrap CSS Templates 如果您想创建博客,这是一个很好的示例...,说明如何利用React和GraphQL做到这一点。...但是对于Gridsome和Gatsby也是如此。两者都使用GraphQL作为数据层,但是Gridsome使用VueJS。这也是一个很棒的静态网站生成器,可帮助您创建出色的博客: ?
npm i -D style-loader css-loader css-loader 用于解析 css 文件; style-loader 会通过使用多个 标签的形式自动把...-hot 参数允许代码热更新(代码改动,浏览器会自动更新),-open参数允许 Webpack 帮我们自动打开浏览器窗口。...:8000/ 看下效果 打开 http://localhost:8000/___graphql 运行 graphql 语言查询 比如创建一个博客列表,可以在代码中直接导出一个 graphql 查询语言...import * as React from 'react' import { graphql } from 'gatsby' import Layout from '.....更为复杂 ⛔️ 需要了解 GraphQL 和 Node.Js 的相关知识 ⛔️ 配置繁重 ⛔️ 构建时间会随着内容的增加而变长 ⛔️ 云服务需要付费 值得强调的是,丰富的插件系统是选择 Gatsby 的重要原因
技术栈和功能: Nuxt.js 组件和页面 Storyblok模块 Mixins 用于状态管理的Vuex SCSS样式 Nuxt中间件 教程:https://www.storyblok.com/tp/nuxt-js-multilanguage-website-tutorial...06 使用Gatsby建立博客 你将学到什么内容: 在本教程中,你将学习如何利用Gatsby构建出色的博客,可以很好地用来撰写自己的文章,同时利用React和GraphQL的能力。...技术栈和功能: Gatsby React GraphQL 插件和主题 MDX/Markdown 引导CSS 教程:https://blog.bitsrc.io/how-to-build-a-blog-with-gatsby-and-boostrap-d1270212b3dc
技术栈和特性 Nuxt.js 组件和页面 Storyblok 模块 Mixin 用于状态管理的 Vuex SCSS Nuxt 中间件 这对你来说可能是一个非常酷的项目(https://www.storyblok.com...7 用 Gatsby 构建一个博客 Gatsby 是一个很好的静态站点生成器,它在底层使用了 React 和 GraphQL。这个项目看起来是这样的。...你将学到什么 在这个教程中,你将学习如何利用 Gatsby、React 和 GraphQL 构建一个出色的博客。...技术栈和特性 Gatsby React GraphQL 插件和主题 MDX/Markdown Bootstrap CSS 模板 如果你曾经想过要开发一个博客,这就是一个很好的例子(https://blog.bitsrc.io...Gridsome 与 Gatsby 一样,两者都使用 GraphQL 作为数据层,不一样的是 Gridsome 使用了 VueJS。它也是一个很棒的静态站点生成器,可以帮你构建出很好的博客。
GraphQL GraphQL 是API的查询语言(可以看成是REST的现代版)。...GraphQL没有辜负2017年的炒作,像 Yelp、Spotify、Github、沃尔玛、《纽约时报》 等主流公司都在采用GraphQL,而且现在还有了基于GraphQL的API。...这意味着你仍然可以跟Relay一起用Redux,Redux用于本地状态管理以及一些复杂的非服务器状态,然后由Relay来抓取。...Gatsby Gatsby 是Kyle Mathews开发的用于React的静态网站生成器。 自从Kyle去年全职开发Gatsby以来,这个东西开始真正获得发展势头。...React网站本身就是用Gatsby开发的,再也有没有比这更有力的证明了。 Gatsby的全部关切都在于性能和给React提供尽可能快的web体验。
GraphQL GraphQL 是API的查询语言(可以看成是REST的现代版)。...GraphQL没有辜负2017年的炒作,像Yelp、Spotify、Github、沃尔玛、《纽约时报》等主流公司都在采用GraphQL,而且现在还有了基于GraphQL的API。...这意味着你仍然可以跟Relay一起用Redux,Redux用于本地状态管理以及一些复杂的非服务器状态,然后由Relay来抓取。...Gatsby Gatsby是Kyle Mathews开发的用于React的静态网站生成器。 自从Kyle去年全职开发Gatsby以来,这个东西开始真正获得发展势头。...React网站本身就是用Gatsby开发的,再也有没有比这更有力的证明了。 Gatsby的全部关切都在于性能和给React提供尽可能快的web体验。
1.什么是GraphQL GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。...GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具。...官网:http://graphql.cn/ 2.为什么需要它? 一图抵万言: 1557045421223.png 3.怎么做?...src>components>Header.js里面, import { StaticQuery, graphql } from 'gatsby' import React from "react" const...传到了TitleAndDescription组件里,react组件数据传递 const Header = () => { return ( <StaticQuery query={graphql
和 2017 年一样,Gatsby 在 2018 年依然是最受欢迎的静态站点生成器(用于生成一组 HTML JavaScript 和 CSS 文件,以便能够在任意地方托管,超快响应 —— 的一种工具)。...Gatsby 的亮点在于它的多面性(你能结合单页应用和静态站点的优点)以及对性能的关注。 如果你希望使用 Vue.js 而不是 React,那么第 2 名的 VuePress 或许是恰当的选择。...GraphQL ? GraphQL 生态圈正在高速发展,并且有一个大趋势是: 一些工具的出现能够简化 GraphQL 的配置过程。...Gatsby 依然是第一名,而且它绝对是最易上手使用 GraphQL 的工具之一。 从 Graphcool 演变而来的 Prisma 位于第二。...前 15 名的其余部分,包括 GraphQL 服务端、客户端、以及各种其他工具 —— 比如 GraphQL Playground。 学习资源 ?
组件注入API,用于完全控制UI行为。 选项组、portal 支持、动画等。...使用 React构建快速、现代的应用程序和网站 突出的功能 以极低代价托管: Gatsby站点不需要服务器,因此您可以以服务器呈现站点的一小部分成本在CDN上托管整个站点。...安装: npm i gatsby-image 示例代码: import React from "react" import { graphql } from "gatsby" import Img from..."gatsby-image" export default ({ data }) => ( Hello gatsby-image ) export const query = graphql` query { file(relativePath
Gatsby:这是一个基于 React 的 SSG 框架,以其丰富的插件系统和 GraphQL 数据查询功能而闻名。Gatsby 非常适合内容驱动型网站,比如博客和营销页面。...Hugo:这是一个用 Go 编写的高性能 SSG 工具,常用于技术博客和文档站点的构建。Hugo 的速度是其最大优势。...解决方案在迁移过程中,该公司选择了 Gatsby 作为 SSG 框架。其主要操作包括:数据导入:通过 Gatsby 的数据层,连接原有 CMS 数据库,并通过 GraphQL 查询内容。...静态化构建:使用 Gatsby 的构建命令生成静态 HTML 文件。部署优化:将静态资源上传到全球分布的 CDN。