尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Full Stack Foundations 进阶揭秘:为什么 Remix 的 fetch、Request/Response 是全栈开发的灵魂?

Full Stack Foundations 进阶揭秘:为什么 Remix 的 fetch、Request/Response 是全栈开发的灵魂? Full Stack Foundations 进阶揭秘为什么 Remix 的 fetch、Request/Response 是全栈开发的灵魂【免费下载链接】full-stack-foundationsLearn the foundational skills of building full stack web applications.项目地址: https://gitcode.com/gh_mirrors/fu/full-stack-foundationsFull Stack Foundations 是一套由实战驱动的全栈 Web 应用开发教程带你从 Styling 到错误处理完整掌握 Remix 中 fetch、Request/Response 这些 Web 标准 API——它们正是贯穿整个工作坊的灵魂。本文将带你快速理解为什么理解 fetch 和 Request/Response是学好全栈开发的第一步。 这个工作坊到底教什么Full Stack Foundations 以一款真实场景的Epic Notes 记事应用为蓝本把你当成刚入职的工程师用 7 大模块逐步构建完整的全栈能力模块目录核心技能01exercises/01.styling/资源链接、全局样式、CSS 编译打包02exercises/02.routing/URL 路由、导航、动态参数03exercises/03.loading/服务端数据加载loader fetch04exercises/04.mutations/表单提交与数据变更action Request05exercises/05.scripting/客户端脚本、滚动恢复、预取06exercises/06.seo/静态/动态 SEO 优化07exercises/07.error-handling/错误边界、404 与错误冒泡每个模块都遵循problem → solution的双目录结构problem目录是带 Emoji 提示的练习题solution目录是标准答案。你可以对照着边做边改官方文档入口在 exercises/README.mdx模块背景介绍均在各模块的README.mdx中。 fetch 为什么是全栈开发的通用语言在 03 模块的开篇文档 exercises/03.loading/README.mdx 中教程先花大量篇幅讲Web 本身而不是框架语法。原因很简单一切的起点是请求。用户访问 URL → 浏览器发请求 → 服务器返回响应通常是 HTML→ 浏览器再为图片、CSS、JS 发请求。fetch 是现代 Web 的标准 API。它让浏览器能向服务器要数据而不刷新页面自 2006 年 AJAX 诞生以来的演进成果。两个核心对象Request请求与Response响应外加承载元数据的Headers。数据通常以 JSON 传输fetch的 Response 对象直接提供.json()方法帮你解析。 关键点fetch API 大部分是异步的、基于 Promise 的——客户端和服务端 JavaScript 运行时都内置支持这意味着你写的网络代码两端通用。这正是灵魂二字的由来它不绑定任何框架。⚡ Remix把 Web 标准变成生产力Remix 的核心设计哲学是直接面向 Web 标准编程——在 Remix 应用里你直接操作Request和Response对象。即便底层用的是 express 适配器本项目通过remix-run/express完成转换你面对的 API 始终是标准化的。读取数据loader 就是响应式函数每个路由模块都可以导出一个loader异步函数它只在服务端运行可以访问数据库、API、私有环境变量export async function loader({ request, params }: LoaderFunctionArgs) { return json({ hello: world }) }UI 端用useLoaderData钩子取走数据。最妙的是你不需要关心这次请求是首次加载页面document 请求还是页内导航data 请求——加载代码和渲染代码完全一致Remix 帮你抹平了这个差异。想动手试试打开exercises/03.loading/01.problem.loader/app/routes/users/$username.tsx里面用 Kody 考拉标注了你需要动手的位置加一个 loader、从params取用户名、返回json。旁边的 还有附加挑战试试用new Response替代json工具函数。写入数据action 与 Post/Redirect/Get04 模块的 exercises/04.mutations/README.mdx 讲透了一个经典问题表单提交成功后绝不能直接返回 HTML否则浏览器后退按钮会弹出烦人的确认重新提交表单——对转账、购票场景简直是灾难。标准解法就是PRG 模式Post/Redirect/Get成功提交后返回 302/303 重定向。Remix 内置了这个模式action函数里处理完数据return redirect(/sandwiches)即可并且 Remix 会自动重新验证revalidate所有数据数据库永远是唯一事实来源客户端根本不需要状态管理。export async function action({ request, params }: ActionFunctionArgs) { const formData await request.formData() const sandwichType formData.get(sandwichType) // 处理数据…… return redirect(/sandwiches) }注意细节request.formData()直接从 Web 标准的Request对象解析表单——没有中间层、没有私有 API这就是面向标准编程的具象体现。 如何高效使用这套练习启动练习用 Epic Workshop CLI 一条命令搭建npx --yes epicshoplatest add full-stack-foundations运行应用npm start浏览器直接打开日志中的地址跑测试打开 problem 页面点击 Test 标签页Playwright 会验证你的实现测试脚本见各模块的playwright.config.tsEmoji 提示系统 告诉你做什么、 负责 TypeScript 类型、 给出具体代码提示、 表示该删代码了——完整含义见 README.md环境要求不高git ≥ v2.18、Node.js ≥ v20、npm ≥ v8。如果需要克隆仓库可使用git clone https://gitcode.com/gh_mirrors/fu/full-stack-foundations。 为什么说是灵魂三点总结框架会变标准不会。Remix、React Router、其他框架来来去去但 fetch、Request/Response、Headers、状态码这些 Web 标准是浏览器与服务器之间几十年的通用契约。一套代码通吃前后端。同一套异步、Promise 化的 API在浏览器和 Node.js 运行时里行为一致学习成本直接减半。错误处理同样基于标准。07 模块中fetch收到 400-599 状态码时 Promise不会被 reject——你可以通过 Response 的ok属性判断成败Remix 还允许你在 loader/action 中直接throw Response来精确控制错误状态码配合路由级的ErrorBoundary与错误冒泡机制把 HTTP 状态码的价值发挥到极致。先打好 fetch 与 Request/Response 这块地基再学任何全栈框架你都会发现自己看得懂底层在干什么——这正是 Full Stack Foundations 想给你的能力。【免费下载链接】full-stack-foundationsLearn the foundational skills of building full stack web applications.项目地址: https://gitcode.com/gh_mirrors/fu/full-stack-foundations创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表