主要观点:
- 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/reactVite 插件的处理。 - 测试实施的
@fastify/react@0.6.0版本、相关启动模板下载及测试步骤和效果展示。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。