有些开发者就是更喜欢用 React。我并不怪他们,因为我也喜欢 React。也许这就是他们首先学习的。我已经用它很长时间了,对它有一种舒适感。但主要是它强大的组件模型让我喜欢。有一个代码库,它由具有明确工作和责任的组件构成,这真的很好。
但是,用 React 构建 WordPress 网站并不常见。使用 WordPress 的标准方法是通过主题,主题本质上是样式和处理模板的 PHP 文件。但是 Frontity 正在改变这种情况。Frontity 是一个基于 React 的框架,它会解析您的 WordPress 网站的 API 并使用 React 构建整个前端,并提供您从这种环境中期待的所有强大工具。

天啊,这是多么快的设置
这是我开始的方式。在命令行中,我做了
npx frontity create my-app
然后我进入它创建的文件夹并做了
npx frontity dev
这会立即为您启动一个网站供您开始工作。
为了让它对我来说更真实,我进入 frontity.settings.js
并将源 API 更改为指向 CSS-Tricks
{
name: "@frontity/wp-source",
state: {
source: {
api: "https://css-tricks.cn/wp-json",
},
},
},
现在看看我得到了什么

太疯狂了。对于一些项目,这可以直接部署。
查看他们的介绍视频,它会逐步演示这个过程
开始工作
我对这类事情的第一反应是立即动手进行样式设计。默认安装的主题是 Mars 主题,他们有一个 很好的指南 来帮助您了解它的工作原理。该主题使用 Emotion 进行样式设计,因此组件具有可以直接在其中修改的样式。我在 <HeadContainer>
组件中找到了 index.js
,并立即进行了 background: red
更改!
const HeadContainer = styled.div`
display: flex;
align-items: center;
flex-direction: column;
background-color: red;
`;
它立即热模块重新加载了那个东西

这是那些仅限客户端的技術之一嗎?
这是我自己的想法。我的意思是,使用 WordPress 原样的优势之一是您获得了免费的服务器渲染。这意味着没有 SEO 问题(我们知道客户端渲染的网站可能需要一周或更长时间才能为每次更改进行抓取)。这意味着弹性和速度。
Frontity 确实执行服务器端渲染!它使用同构渲染,这意味着您需要一个 Node 服务器来渲染页面,但这意味着浏览器将获得为页面完全生成的 HTML!
与在开发中搭建新网站和运行新网站一样容易,您只需执行以下操作即可为生产做好准备
npx frontity build
然后运行 Node 服务器
npx frontity serve
酷。
我也非常喜欢围绕这一切都有一个 社区。如果您需要帮助,您会得到帮助。
这是最理想的场景。
我一直很喜欢用 WordPress 构建网站,现在有了块编辑器,我更加开心了。我真的很喜欢有一个编辑体验来帮助我编写和制作我想创建的页面。
但是,我也喜欢使用基于组件的架构,它具有快速、易于使用、热刷新本地开发环境。一旦你使用这种开发环境,就很难使用其他任何东西!美丽的 DX。
而且我还要确保我部署到生产环境的网站是快速、健壮、弹性、可访问性和 SEO 友好的。
使用 Frontity 网站,我可以获得所有这些。
我在这里喜欢的一件事是 Automattic 本身支持所有这些。不仅仅是精神上的支持,他们还 是主要的投资者。我认为他们很明智地将此视为 WordPress 生态系统的重要组成部分。使用 WordPress 构建并不意味着不使用 React 构建,尤其是在 Frontity 承擔了很多繁重工作的情况下。
这太棒了!我爱它!!将 wp 提升到一个新的水平
只需坐下来享受 React,这些工具你不需要喜欢它们
我不知道为什么 WP 团队选择 React 而不是 Vue,但我真的不喜欢 React 的 JSX 和它的意大利面条代码。我希望 WP 有一个类似的基于 Vue 的系统。那将非常棒。
React 不会产生意大利面条代码,糟糕的开发者会产生意大利面条代码……是吗?
同意。更希望有一个 Vue 解决方案。
是开发者产生了意大利面条代码,而不是 React。如果你不熟悉 React,你只会用错误的方式使用它。那些没有深入研究它的人不会理解这一点!
感谢您为任何在 WordPress 中构建网站的人提供引人注目的信息。
太棒了,我爱它
我不熟悉 React,但看到你对它如此兴奋让我感兴趣。你能解释一下它的好处吗?你花了 12 秒部署了一个网站,这很令人印象深刻,但内容来自哪里?
嗨,Joseph!我是 JuanMa,我在 Frontity 的开发者关系团队。
Frontity 是一个免费的开源框架。它使您可以轻松地为无头 (或解耦) WordPress 网站构建基于 React 的前端。您的 WordPress 网站通过 REST API 提供数据,而您使用 Frontity 构建的前端会使用这些数据并在浏览器中渲染这些数据,您可以根据自己的喜好配置和设置样式 (使用 React 组件)。
您可以在我们的文档站点找到更多信息:https://docs.frontity.org/
您好,先生,
我是一名前端开发者,正在开发 React js 应用程序和 WordPress 网站。在阅读完上面的文章后,我想在我的网站上使用 Frontity React 框架。我当前的 WordPress 网站加载时间过长。我认为 React Frontity 会对我有所帮助。
WordPress 有一个 API,可以从中提取博客文章和菜单等信息
太棒了,我一定会尝试一下!
值得一提的是,这只是将 WordPress 用作无头 CMS。您将失去开箱即用的 WP 服务器端渲染和与许多插件的兼容性。
没错,但人们正在制作像 frontity-contact-form-7 这样的软件包来添加回功能。
嗨,Roberto!我是 JuanMa,我在 Frontity 的开发者关系团队。
让我提供更多关于 SSR 和 WP 插件与 Frontity 的信息。
– Frontity 从 React 组件提供服务器端渲染的页面。这减少了首屏内容绘制所需的时间,并确保 SEO 不受损。
– WP 生态系统中存在一个向无头 WP 发展的趋势,因此许多插件正在处理它们与 REST API 的集成。一旦进入 REST API,Frontity 就会简化您从 React 组件使用此数据的过程。
您可以在我们的文档站点找到更多信息:https://docs.frontity.org/
当时我正在考虑用 React 做一些与 WordPress 的事情。看到这篇文章真是太好了。
这会生成静态 WP 网站吗?
我可以在任何地方免费托管 WP 吗?
这适用于 WooCommerce 吗?
嗨,Tan!我是 JuanMa,我在 Frontity 的开发者关系团队。
我来回答你的问题。
这会生成静态 WP 网站吗?
不,Frontity 将从您的 WP REST API 内容动态生成您的页面。这意味着您无需在 WP 中更新内容时每次都重建您的网站。如果您为此添加了良好的缓存策略,您就可以使用 Frontity 获得两全其美(良好的性能和与内容的实时连接)。
我可以在任何地方免费托管 WP 吗?
当然,有很多方法可以免费获得您的 WP 安装。最受欢迎的方法是 wp.com。您可以使用您的 wp.com 作为使用 Frontity 构建的 React 网站的数据来源。
这适用于 WooCommerce 吗?
使用 Frontity,您面临的挑战与任何其他同构 React 应用程序相同。对于 WooCommerce,大多数端点都是受保护的,因此您需要一种策略来从客户端和服务器端访问这些端点。您可以在我们的社区论坛 https://community.frontity.org/ 中找到一些关于此问题的讨论(以及一些解决方案)。
您可以在以下位置找到更多有关所有这些内容的信息:https://docs.frontity.org/
嗨,Tan
Frontity 不会生成静态网站。内容是从 WP REST API 动态提取的,因此每个页面视图都显示最新的内容。Frontity 确实会生成您的网站的服务器端渲染版本,这对于您的 SEO 和首屏内容绘制(提高感知响应时间——因此对 UX 非常有用)都有好处。一旦客户端 React 水合完成,所有对 WP REST API 的请求将由客户端发出。
对于免费的 WP 托管,您可以使用 wordpress.com 网站,但您可以安装的插件范围有限。如果使用 wordpress.com,请注意“api”地址的格式不同。它应该遵循以下格式
https://public-api.wordpress.com/wp/v2/sites/your-wp-site.wordpress.com
有关更多信息,请参阅此处的文档:https://docs.frontity.org/getting-started#initial-checks
如果您只是想尝试 Frontity,可以使用本地安装的 WordPress 版本。
Frontity 可以与 WooCommerce 一起使用,但它确实需要一些努力,因为 WooCommerce REST API 需要身份验证。
对于 WordPress 开发者来说,它需要相当多的学习曲线。因此,我通常观察到社区对 Frontity 的负面态度。在最初引入 Gutenberg 时也是如此。
老实说,我们也对此持怀疑态度。我们更喜欢 Vue 和 Nuxt 而不是 React 来进行 WordPress 无头开发。但与此同时,我们非常想尝试 React,并推动自己使用 Frontity 进行实验项目。确实遇到了一些挑战,但我们没有退缩。我们最终使用 Frontity 构建了自己的网站,以及我们自己的插件之一的 Frontity 软件包——Wp Job Openings。
Frontity 还没有成为完美的解决方案,但它正在不断完善。我们现在期待使用该框架和 React 构建更多项目。我们在博客上分享了整个体验作为 案例研究。