Fastify 中的服务器操作

主要观点:

  • 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版本、相关启动模板下载及测试步骤和效果展示。
阅读 11
0 条评论