Gatsby-使用React构建应用程序和网站的平台

126 阅读5分钟

Gatsby是一个使用React构建应用程序和网站的平台。

它是允许你在一套统称为JAMstack的技术和实践上进行构建的工具之一。

Gatsby是现在前端开发领域的酷儿之一。为什么呢?我认为原因是。

  • JAMstack方法在构建Web应用和网站方面的爆发
  • 渐进式网络应用程序技术在业界的快速应用,这也是Gatsby的主要特点之一
  • 它是在ReactGraphQL中构建的,这是两个非常流行的、正在崛起的技术
  • 它真的很强大
  • 速度快
  • 文档很好
  • 网络效应(人们使用它,创建网站,制作教程,人们对它有更多的了解,形成一个循环)
  • 一切都是JavaScript(不需要学习一种新的模板语言)
  • 在开始的时候,它隐藏了复杂性,但允许我们进入每一个步骤来进行定制。

所有这些都是很好的观点,Gatsby绝对值得一看。

它是如何工作的?

使用Gatsby,你的应用程序是使用React组件构建的。

你将在网站中呈现的内容通常是用Markdown编写的,但你可以使用任何类型的数据源,如无头CMS或像Contentful这样的网络服务。

Gatsby构建网站,并将其编译为静态HTML,可以部署在任何你想要的网络服务器上,如Netlify、AWS S3、GitHub Pages、常规的托管提供商、PAAS等。你所需要的只是一个能提供普通HTTP页面和你的资产给客户端的地方。

我在列表中提到了渐进式网络应用程序。Gatsby自动将你的网站生成为PWA,其服务工作者可以加快页面加载和资源缓存的速度。

你可以通过插件增强Gatsby的功能。

安装

你可以通过在你的终端运行这个来安装Gatsby。

npm install -g gatsby-cli

这将安装gatsby CLI工具。

(当新的版本出来时,通过再次调用这个命令来更新它)

你可以通过运行以下命令创建一个新的 "Hello World "网站

gatsby new mysite https://github.com/gatsbyjs/gatsby-starter-hello-world

这个命令在mysite 文件夹中创建一个全新的Gatsby站点,使用的是github.com/gatsbyjs/ga…启动器

启动器是一个样本网站,你可以在此基础上建立。另一个常见的启动器是default ,可在github.com/gatsbyjs/ga…

在这里,你可以找到一个你可以使用的所有启动器的列表。

运行Gatsby网站

在终端完成安装启动器后,你可以通过调用以下命令来运行网站

这将启动一个新的Web服务器,并在localhost的8000端口提供网站服务。

下面是我们的Hello World启动器的运行情况。

检查网站

如果你用你喜欢的代码编辑器(我用VS Code)打开你创建的网站,你会发现有3个文件夹。

  • .cache, 一个隐藏的文件夹,包含Gatsby的内部结构,你现在不应该改变它。
  • public, 一个隐藏的文件夹,包含了你建立后的网站
  • src 包含React组件,本例中只有 组件。index
  • static 其中包含静态资源,如CSS和图片。

现在,对默认页面做一个简单的修改是很容易的,只要打开src/pages/index.js ,把 "Hello world!"改为其他内容,然后保存。浏览器应该立即热重新加载该组件(这意味着页面实际上没有刷新,但内容发生了变化--这是由底层技术实现的技巧)。

要添加第二个页面,只需在这个文件夹中创建另一个.js文件,内容与index.js (调整一下内容),然后保存。

例如,我创建了一个second.js 文件,内容如下。

import React from 'react'

export default () => <div>Second page!</div>

然后我打开浏览器到http://localhost:8000/second。

链接页面

你可以通过导入一个Gatsby提供的名为Link 的React组件来链接这些页面。

import { Link } from "gatsby"

并在你的组件JSX中使用它。

<Link to="/second/">Second</Link>

添加CSS

你可以使用JavaScript导入的方式导入任何CSS文件。

你可以使用React样式设计。

<p style={{
    margin: '0 auto',
    padding: '20px'
  }}>Hello world</p>

使用插件

Gatsby提供了很多开箱即用的东西,但许多其他功能是由插件提供的。

有3种类型的插件。

  • 源插件从一个源获取数据。创建节点,然后由转化器插件进行过滤。
  • 转化器插件将源插件提供的数据转化为Gatsby可以使用的东西。
  • 功能插件实现某种功能,如添加网站地图支持或更多。

一些常用的插件有。

一个Gatsby插件的安装分两步。首先,你使用npm ,然后在gatsby-config.js ,将其添加到Gatsby的配置中。

例如,你可以安装Catch Links插件。

npm install gatsby-plugin-catch-links

gatsby-config.js (如果你没有,在网站根目录下创建它),将该插件添加到plugins 输出的阵列中。

module.exports = {
  plugins: ['gatsby-plugin-catch-links']
}

就这样,该插件现在将完成它的工作。

建立静态网站

一旦你完成了对网站的调整,你想生成生产的静态网站,你将调用

在这一点上,你可以通过启动一个本地Web服务器来检查它是否像你所期望的那样工作。

启动一个本地Web服务器,这将使网站尽可能地接近你在生产中看到的样子。

部署

一旦你使用gatsby build 构建网站,你需要做的就是部署public 文件夹中的结果。

根据你选择的解决方案,你将需要不同的步骤,但通常你会推送到Git仓库,让Git的提交后钩子完成部署工作。

这里有一些很好的指南,适用于一些流行的托管平台