了不起的 Gatsby.js

Gatsby.js 是一个基于 React 的静态网站生成器

Blazing fast static site generator for React

前一阵看 React 官网文档的时偶然发现的

 

Kyle Mathews 小哥在 2015 年开了这个坑

 

到目前已有 17k+ 的 star,以及被 React、Reason、Sourcegraph 等用来生成官方文档,还得到了业界大佬的好评

We use it for  https://reactjs.org/ . Nice to be able to use React component abstraction for layout etc, load initial page as HTML but then have fast navigation thanks to code splitting. Unlike Jekyll I don’t constantly think about static/dynamic separation. @Dan Abramov

下面来一个快到爆炸的新手教程?

开发环境

node version >= 8.0.0

Hello World

安装 gatsby cli

npm install --g gatsby-cli

初始化

gatsby new tutorial-part-one https://github.com/gatsbyjs/gatsby-starter-hello-world

https://github.com/gatsbyjs/gatsby-starter-hello-world 被称为 Starter,除此之外还有很多具有各种功能的 Starter

Run 起来

cd tutorial-part-one && gatsby develop

打开 http://localhost:8000

用你最心爱的编辑器/IDE,给 src/pages/index.js 加点料

import React from "react";

export default () =>
 <div style={{ color: `tomato` }}>
   <h1>Hello Gatsby!</h1>
   <p>What a world.</p>
   <img src="https://source.unsplash.com/random/400x200" alt="" />
 </div>

似里 React,还是熟悉的味道

Link

Gatsby 提供了组件 gatsby-link

来,用你最心爱的编辑器/IDE 给 src/pages/index.js 加个链接 /page-2/

import React from "react";
import Link from "gatsby-link";

export default () =>
  <div style={{ color: `tomato` }}>
    <h1>Hello Gatsby!</h1>
    <p>What a world.</p>
    <img src="https://source.unsplash.com/random/400x200" alt="" />
    <br />
    <div>
      <Link to="/page-2/">Link</Link>
    </div>
  </div>

然后增加文件 src/pages/page-2.js

import React from "react";
import Link from "gatsby-link";

export default () => (
  <div>
    <p>Hello world from my second Gatsby page</p>
    <Link to="/">back home</Link>
  </div>
);

Interactive

接下来,再你最心爱的编辑器/IDE 给 src/pages/index.js 加个链接 /counter/

import React from "react";
import Link from "gatsby-link";

export default () =>
  <div style={{ color: `tomato` }}>
    <h1>Hello Gatsby!</h1>
    <p>What a world.</p>
    <img src="https://source.unsplash.com/random/400x200" alt="" />
    <br />
    <div>
      <Link to="/page-2/">Link</Link>
    </div>
    <div>
      <Link to="/counter/">Counter</Link>
    </div>
  </div>

细心的朋友一定能从 counter 这个名字猜到些什么,这次增加的是一个带有交互能力的页面,functional component 是不够的,要使用 通过 class component 中的 state 来提供交互能力

import React from "react";

class Counter extends React.Component {
  constructor() {
    super()
    this.state = { count: 0 }
  }

  render() {
    return (
      <div>
        <h1>Counter</h1>
        <p>current count: {this.state.count}</p>
        <button onClick={() => this.setState({ count: this.state.count + 1 })}>plus
        </button>
        <button onClick={() => this.setState({ count: this.state.count - 1 })}>minus
        </button>
      </div>
    )
  }
}
export default Counter

Deploying

接下来我们把刚才写的东西部署到 GitHub Pages

npm install gh-pages --save-dev

最后用你最心爱的编辑器/IDE,修改 gatsby-config.js/project-name 即为 https://github.com/username/project-name 中的末尾)

module.exports = {
  pathPrefix: `/project-name`,
}

gatsby build --prefix-paths && gh-pages -d public

执行完毕后,打开 https://username.github.io/project-name/

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 前端元框架是一种辅助前端开发的工具,它提供了一组框架和约定,帮助开发者更快速地构建 Web 应用程序。常见的前端元框架包括: - Next.js:这是一个基于 React 的服务端渲染框架,可以帮助开发者快速构建高性能的 Web 应用程序。 - Remix:这是一个基于 Vue 的元框架,提供了一组组件和工具,帮助开发者快速构建 Web 应用程序。 - Gatsby:这是一个基于 React 的静态站点生成器,可以帮助开发者快速构建高性能的静态站点。 - Nuxt.js:这是一个基于 Vue 的服务端渲染框架,可以帮助开发者快速构建高性能的 Web 应用程序。 这些前端元框架各有特点,例如 Next.js 和 Nuxt.js 提供了服务端渲染的能力,可以帮助开发者构建高性能的 Web 应用程序;Gatsby 是一个静态站点生成器,可以帮助开发者快速构建高性能的静态站点。您可以根据自己的需求选择适合的前端元框架来使用。 ### 回答2: 前端元框架是一种提供了更高级别的抽象和功能的框架,它们使得开发者可以更快速、更高效地构建现代化的 Web 应用程序。以下是一些常见的前端元框架及其特点和区别: 1. Next.js:Next.js 是一个基于 React 的前端元框架,它提供了服务器渲染(SSR)和静态生成(SSG)的能力。它可以改善 SEO,提升应用程序的性能和加载速度,简化了路由和数据获取等方面的开发工作。Next.js 还有一个强大的插件生态系统,可以通过插件扩展其功能。 2. Remix:Remix 是一个全新的 JavaScript 框架,它可以帮助开发者构建现代化的 Web 应用程序。Remix 提供了服务器渲染、数据加载和路由管理等功能,并且非常注重开发者体验。Remix 对于 SEO 和性能优化也有很好的支持。 这两个前端元框架有以下一些共同的特点: - 服务器渲染和静态生成的能力:这两种框架都支持在服务端渲染页面,提供更好的性能和更快的加载速度。 - 路由管理:它们都提供了简化的路由管理系统,使得开发者可以更好地组织和管理页面之间的跳转和路由逻辑。 - 数据获取:它们都支持通过 API 或其他方式获取数据,并将数据注入到页面中。 - 插件和扩展:这两个框架都有丰富的插件生态系统,可以通过插件扩展框架的功能。 Next.js 和 Remix 之间的区别主要在于框架本身的实现方式、生态系统和开发者体验上的差异。Next.js 是基于 React 的,相对来说更成熟,拥有更庞大和丰富的插件生态系统。而 Remix 是一个全新的框架,旨在提供更好的开发者体验,并具有更好的可扩展性和性能优化能力。开发者可以根据自己的需求和喜好选择适合的框架来构建应用程序。 ### 回答3: 前端元框架是为了简化和优化前端开发而设计的框架。其中,Next.js和Remix是两种常见的前端元框架。它们有以下区别和特点: 1. Next.js:Next.js是一个基于React的前端元框架。它主要强调了页面的服务器渲染和静态网站生成。Next.js提供了很多内置功能,如代码分割、自动预取、热模块替换等,可以快速开发性能优化的网站应用。此外,Next.js还支持动态路由,使得创建动态页面变得更加容易。 2. Remix:Remix则是一个更加全面的前端元框架。它集成了路由、数据加载、服务器渲染和构建优化等功能,可以覆盖整个前端开发流程。Remix的灵感来自于Next.js和React Router,并在此基础上增加了很多新的特性。Remix支持多种服务器端渲染方式,包括同时支持RESTful和GraphQL API。它还提供了一个强大的插件系统,允许开发者扩展和定制框架的功能。 总的来说,Next.js和Remix都是优秀的前端元框架,它们各自有不同的特点和使用场景。Next.js着重于静态页面生成和性能优化,适用于构建静态网站和应用;而Remix则提供了更全面的功能和灵活性,适用于更复杂的前端应用开发。选择适合自己需求的框架,可以提高开发效率并优化网站性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值