Next.js 14 近期发布,其中一个重大的功能点是 Server Actions 成为稳定版,因其超前和熟悉的开发方式,在社交网络上引起了一阵讨论,应该是下面这张图的内容了。
图片
有人说这是又回到 php 的时代了吗?
古话说的好 “人有多大胆,地有多大产”。只要你敢想象,一切就皆有可能。这不,这几天 Github 上出现了一个 https://github.com/bufferhead-code/nextjs-use-php 的项目,它的目的是让你可以在 Next.js 中写 PHP,这是不是真的使 “嘲笑 PHP” -> “理解 PHP” -> “成为 PHP” 成为现实?(注意,这并不是真的!)
就像使用 "use server" 一样,在 React Server Component 中用 "use php" 来写 PHP 代码,如下所示:
return (
<button
formactinotallow={async () => {
'use php'
(new PDO('MySQL:host=localhost:3306;dbname=public', 'root', 'root'))
->prepare("INSERT INTO Bookmarks (slug) VALUES (?)")
->execute(array('new'));
}}>
Insert Bookmark
</button>
)
还可以在 React Client Component 中这样写:
// actions.js
'use server'
export async function phpHelloWorld() {
'use php'
print "Hello from PHP";
}
// page.tsx
import { phpHelloWorld } from "../actions";
上述代码,需要在 https://github.com/bufferhead-code/nextjs-use-php 仓库拉取代码并执行以下命令运行:
npm install
npm run build
npm run start
浏览器打开 http://localhost:3000 查看结果。
声明:我想说的是你不应该在任何项目中考虑使用它,上述只是作者通过一些脚本手段让这些奇怪的想法成为了一种可能,但你觉得会有实际意义吗?
类似这样愚蠢的项目还有 https://github.com/elnardu/react-use-c、https://github.com/elnardu/react-use-Rust
图片
Next.js 自从 13 版本以来,带来的 App Router、Server Component、Server Actions、预渲染(流式渲染)等功能,改变了以往传统的前端开发方式,新的开发范式,总会带来一些新的问题思考,这不一定就是坏的。