主要观点:
- Solid.js 是作者喜爱的框架之一,虽未用其构建重要项目,但想为
@fastify/vite
实现@fastify/solid-js
渲染器,Vue 仍是专业推荐但 Solid.js 在架构上更吸引人。 - SolidStart 的官方全栈框架对服务器动作(server actions)有较干净的实现,默认是同构的,若要确保只在服务器运行需用
'use server'
指令。 @fastify/react
已可实现同构数据获取,实现简单易复制,通过getData()
函数负责数据获取。- 设计
@fastify/react
的服务器动作时,可直接从路由模块定义同构端点,通过createServerAction()
创建端点,useServerAction()
处理客户端和服务器端的调用。 - 深入实现时,扩展路由上下文对象添加
actionData
用于存储服务器端动作数据,通过prepareServer()
钩子确保获取服务器地址和请求映射,@fastify/react
的 Vite 插件使用acorn-strip-function
确保某些函数不进入客户端包。 @fastify/react@0.6.0
已包含此实现,计数器示例在react-kitchensink
启动模板中,可通过giget
下载测试,页面渲染前会触发请求,刷新则只在服务器运行,点击按钮会向服务器动作发出新请求但useServerAction()
每个路由渲染只运行一次。
关键信息:
- Solid.js 相关:作者喜爱,想为
@fastify/vite
实现渲染器,架构吸引人。 - SolidStart 相关:对服务器动作实现干净,默认同构,需
'use server'
指令确保只在服务器运行。 @fastify/react
相关:可同构数据获取,实现简单,设计服务器动作可直接定义端点,通过相关函数处理,版本 0.6.0 已包含实现及相关测试示例。
重要细节:
- SolidStart 服务器动作示例代码及
'use server'
指令使用。 @fastify/react
同构数据获取示例代码及工作原理。- 设计服务器动作的代码结构及
createServerAction()
、useServerAction()
函数功能。 - 深入实现中扩展路由上下文对象、
prepareServer()
钩子的具体实现及@fastify/react
Vite 插件的处理。 - 测试实施的
@fastify/react@0.6.0
版本、相关启动模板下载及测试步骤和效果展示。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。