首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用 Gatsby 创建一个博客

在这篇文章中,我们将深入探讨 Gatsby 和一些新特性,并创建一个静态博客。让我们开始吧!...react-helmet 是一种允许修改 head标签的工具 Gatsby 静态地呈现这些头部标签的变化 使用下面的命令: `yarn add gatsby-plugin-catch-links gatsby-plugin-react-helmet...最后,我们有一个针对博客文章的 React 模板,还有一个连接的 GraphQL 查询来查询博客文章,并将 React 模板注入到查询的数据中。...这个API写在在 gatsby-node.js文件中,在这个文件中发现的每一个导出都将由 Gatsby 分析。Gatsby详细地介绍了它的Node API规范。...WEB前端性能优化常见方法 一小时内搭建一个全栈Web应用框架 干货:CSS 专业技巧 四步实现React页面过渡动画效果 让你分分钟理解 JavaScript 闭包 ---- ---- 小手一抖,

2.5K30

如何利用机器学习和Gatsby.js创建假新闻网站​

当您使用Gatsby.js站点模板时,Gatsby会使用Git的一些功能。基本上,Gatsby.js将帮你创建一个有完整的骨架的网站,你可以调整和重新配置,而不是从头开始构建整个东西。...Gatsby附带了许多插件,您可以通过运行在终端npm install中轻松地安装它们。下载插件后,可以将其添加到gatsby-config.js中。 下面是这个项目的文件。 ?...gatsby-node.js 此文件用于实现api。这些api可以使用GraphQL从数据层中获取数据。在处理程序化页面生成时,我们将更深入地研究这个文件的内容。...Gatsby构建在React之上,而React是一个JavaScript库,它使使用称为“组件”的构建块构建用户界面变得更加容易。...我们可以使用名为Gatsby -source-drive的插件将文件直接导入到Gatsby的本地文件系统中。这需要在谷歌api中设置一个服务帐户。

4.5K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    2022 年的 React 生态

    这两个框架都基于 React 建立,因此你应该至少熟悉了 React 的基础知识再去使用。这个领域另一个流行的新兴框架是 Remix,它在 2022 年绝对值得一试。...虽然 Next.js 最初是用来做服务端渲染的,而 Gatsby.js 主要用来做静态站点生成(例如博客和登录页面等静态网站)。然而,在过去几年里,这两个框架之间一直在互相卷......在 React 中, CSS Module 通常是将 CSS 文件放在 React 组件文件中: import styles from '....所有的方案在大型 React 应用中都适用。最后一点提示:如果你想在 React 中有条件地应用一个 className,可以使用像 clsx 这样的工具。.../div> 阅读: 《TypeScript 终极初学者指南》:https://mp.weixin.qq.com/s/6DAyXFHIMW95FS0f3GyHpA 《如何优雅地在 React 中使用TypeScript

    5.8K20

    深入探讨 Web 开发中的预渲染和 Hydration

    让我们看一下下面的代码片段,以了解这种重复逻辑的一个示例: EJS 中的代码: POST" id="myForm"> 将看到一个有内容的页面,而不是像使用 Vite 或 Create React App 时看到的空白页面。 但有一个问题:用户收到的 HTML 不是交互式的。他们不能点击它或提交表单。...在 React 中,“Hydration”是 React 如何“附着”到已经在服务器环境中由 React 渲染的现有 HTML 上。...在 Hydration 过程中,React 将尝试将事件监听器附加到现有标记上,并接管在客户端上渲染应用程序的工作。...Next.js 有一种方法,Gatsby 有另一种方法,Remix 还有另一种方法。它尚未标准化。 我们所有的 React 组件将始终在客户端进行 Hydration,即使它们没有必要这样做。

    17410

    2020 年你应该知道的 React 库

    如果你已经熟悉 React,你可以选择它流行的入门工具包之一: Next.js 和 Gatsby.js。这两个框架都建立在 React 之上,因此你应该已经熟悉 React 的基本原理。...中动态地添加样式,但是一个外部的 CSS 文件可以拥有 React 应用程序的所有剩余样式。...快照测试的工作方式如下: 运行测试之后,将创建 React 组件中渲染的 DOM 元素的快照。当您在某个时间点再次运行测试时,将创建另一个快照,用作前一个快照的差异。...您甚至可能希望在将这些实用函数链接起来时更加灵活,甚至可以将它们动态地组合在一起。这时,您将引入一个实用程序库: Lodash 或 Ramda。...两者都可以整齐地集成到 React 中。

    14.4K40

    一杯茶的时间,上手 Gatsby 搭建个人博客

    而且在了解过程中还发现了 Netlify CMS[10] 这个内容管理平台,如此一来,文章数据完全可以存在 Github 中,同时可以便捷地编辑文章。...但接下来还是会有一些小坑,第一个便是 GraphQL,我们将马上来分析。 为什么用 GraphQL 在上一节介绍了选择 Gatsby 的原因,其中提到了 Gatsby 使用 GraphQL 。...但这么做还是略嫌不便,通过 CMS 一般可以在一个可视化的在线环境中编辑文章,然后一键即可发布。 Gatsby 主流的两个 CMS 是 Contentful 和 Netlify CMS。...本文将聊聊怎么让 Gatsby 兼容 Jekyll 式路径。...如果是新的博客这个问题不大,如果是迁移过来的,有两个解决方式,第一个是手动写个脚本给文章都补上域,另一个是利用 Gatsby 的 Node APIs 在 fields 上生成特定域,鲁棒性更好些。

    3.2K20

    React 条件渲染最佳实践(7 种方法)

    你也可以在 JSX 中使用三元运算符,而不是将 if-else 与立即调用函数表达式(IIFE)一起使用。 假设我们要基于 isShow 状态有条件地渲染一个小组件。您可以这样编写条件渲染。...但是,你需要将其包装在 IIFE 中。 假设你要呈现一个基于 alert 状态设置样式的alert组件。...如你所知,在第 5 种方法中,你应该将switch-case语句包装在 JSX 的 IIFE 中。使用枚举对象,你不需要这样做。 让我们用一个以前的一个示例来距离。你要基于状态呈现 alert 组件。...这是使用枚举对象有条件地呈现它的方式。...将枚举对象拆分到单独文件来复用 关于使用枚举对象进行条件渲染的最好的特性是可以复用。 回到示例案例,Alert 组件是 React 中通常可重用的组件。因此,当你要有条件地渲染它时,也可以让它复用。

    5.8K20

    进击的JAMStack

    简单来说,Gatsby是一个可以让开发者使用React,GraphQL等现代技术快速开发网站的静态网站生成器(static-site generator)。...例如现在pages底下有两个路由,404的路由对应着的是没找到资源的页面,而index路由则是博客的主页面。...templates: 网站的模板文件夹,该文件夹底下只有一个叫做blog-post.js的模板文件,在Gatsby构建网站的时候blogs文件夹底下的每一个Markdown文件都会通过这个模板文件生成一个对应的...这其实是Gatsby应用的一个很大的亮点,那就是:Gatsby打包的应用在浏览器首次请求获得提前生成的静态HTML文件后,会演变成一个React SPA应用,接下来的用户交互就和一般的SPA应用没有任何差别了...除此之外,由于Gatsby使用了React,所以它间接上接入了React的生态系统,这样开发者在开发Gatsby应用时就可以使用React生态的各种最佳实践和库实现了,这无疑可以大大提高我们的开发效率。

    2.9K30

    使用React Hooks 时要避免的5个错误!

    有条件地执行 Hook 可能会导致难以调试的意外错误。React Hook的内部工作方式要求组件在渲染之间总是以相同的顺序调用 Hook。...3.不要创建过时的闭包 React Hook 很大程序上依赖于闭包的概念。依赖闭包是它们如此富有表现力的原因。 JavaScript 中的闭包是从其词法作用域捕获变量的函数。...之后,当按钮被单击并且count增加时,setInterval取到的 count 值仍然是从初始渲染中捕获count为0的值。log 函数是一个过时的闭包,因为它捕获了一个过时的状态变量count。...是否为第一个渲染的信息不应存储在该状态中。...首先不要做的是有条件地渲染 Hook 或改变 Hook 调用的顺序。无论Props 或状态值是什么,React都期望组件总是以相同的顺序调用Hook。 要避免的第二件事是使用过时的状态值。

    4.3K30

    React技巧之鼠标悬浮添加行内样式

    在元素上有条件地设置行内样式。...相反地,当用户的鼠标移出当前元素时,mouseleave事件会被触发。 每当用户将鼠标悬停在div上时,就会调用handleMouseEnter函数。...每当用户将鼠标指针移出div元素时,就会调用handleMouseLeave函数。 我们在这两个事件处理程序中所做的就是更新一个state变量,跟踪用户是否在该元素上悬停。...我们可以使用三元运算符,来有条件地在元素上设置行内样式。 div style={{ backgroundColor: isHovering ?...有条件地在元素上设置行内样式。 相反地,当用户鼠标离开元素时: handleMouseLeave函数会被调用。 isHovering state变量会被设置为false。 恢复元素的样式。

    2K30
    领券