最近 Next.js 14
发布的一项新功能 Server Actions
在前端社区引起了巨大的争议。
简单来说, Server Actions
可以直接让我们在 JSX
代码中操作 Server
相关的能力。
下面是 Next.js 14
发布会上给出的一个示例:
![ca0a1f7a03105febed1ef5b12d877ed5.png](https://img-blog.csdnimg.cn/img_convert/ca0a1f7a03105febed1ef5b12d877ed5.png)
是不是有种感觉回到了 PHP
的时代?
![51c85fc68aea01b1e97930f880f8ba2b.png](https://img-blog.csdnimg.cn/img_convert/51c85fc68aea01b1e97930f880f8ba2b.png)
为什么之前人们这么痛恨 PHP
?
就是因为它写起来太随意了,代码非常混乱,没有任何层次感,而且也有很大的安全风险。
![b8c5766ac41d26e9e62f1c0c0328bc08.png](https://img-blog.csdnimg.cn/img_convert/b8c5766ac41d26e9e62f1c0c0328bc08.png)
而 Next.js 14
的 Server Actions
,把这种感觉又带回来了。
在这个例子中我能想到非常直观的,就是非常容易遭受 SQL
注入攻击:
![eacd8938b47250957c151f5b5591584e.png](https://img-blog.csdnimg.cn/img_convert/eacd8938b47250957c151f5b5591584e.png)
之前各大 ORM
框架为 SQL
注入做了这么多的防护努力,这里居然还在直接执行 SQL ...
就是基于这一点,网上立马响起了大量批判和耻笑声音,各位网友也开始脑补一些奇葩代码:
在 JSX
代码中发射核弹:
![2eb3ebc20907f918d58ec88eb4167a1e.png](https://img-blog.csdnimg.cn/img_convert/2eb3ebc20907f918d58ec88eb4167a1e.png)
在 JSX
代码中写电子元件:
![840450e987fd82e67e47772f1564bd38.png](https://img-blog.csdnimg.cn/img_convert/840450e987fd82e67e47772f1564bd38.png)
在 JSX
代码中写二进制:
![a26c375abd63053d6ae0cc4bc7e594bf.png](https://img-blog.csdnimg.cn/img_convert/a26c375abd63053d6ae0cc4bc7e594bf.png)
在 JSX
代码中写 Linux
内核:
![14db95b1810ed87837f6b2ab3d4ce504.png](https://img-blog.csdnimg.cn/img_convert/14db95b1810ed87837f6b2ab3d4ce504.png)
想象一下你的 React
组件是这样的:
![20049dba266edb5107557a0b892d8257.png](https://img-blog.csdnimg.cn/img_convert/20049dba266edb5107557a0b892d8257.png)
也有网友直接写了个例子,让你在 React Server Action
写的网站里直接把电脑重启:
![52c828c84d6fd2fefb06e3cdd1e31ffa.png](https://img-blog.csdnimg.cn/img_convert/52c828c84d6fd2fefb06e3cdd1e31ffa.png)
最后
对于此,各位怎么看?是遥遥领先?还是开倒车了?
点赞
和在看
是最大的支持⬇️❤️⬇️