为什么SwiftUI-Agent-Skill警惕Binding(get:set:)?onChange替代模式完整详解
【免费下载链接】SwiftUI-Agent-SkillSwiftUI agent skill for Claude Code, Codex, and other AI tools.项目地址https://gitcode.com/GitHub_Trending/swi/SwiftUI-Agent-Skill点击查看免费下载SwiftUI-Agent-Skill 是面向 Claude Code、Codex 等 AI 编程助手的 SwiftUI 代码审查技能而它对手动绑定的写法Binding(get:set:)格外警惕推荐用更简单的StateonChange()组合替代。这篇文章帮你彻底搞懂为什么这条规则值得警惕以及正确的 onChange 替代模式该怎么写。先认识 SwiftUI-Agent-Skill 是什么 SwiftUI-Agent-Skill技能名为SwiftUI Pro是一个SwiftUI 专家教练把它接入 AI 编程工具后AI 在写代码和审查代码时就会遵循一套完整清单覆盖 9 个维度弃用 API 检查api.md视图与动画优化views.md数据流与共享状态data.md导航、设计、无障碍、性能、Swift 语言与代码卫生审查入口定义在 swiftui-pro/SKILL.md 中其中明确把Binding(get:set:)列为要主动拦截的数据流问题。什么是 Binding(get:set:)在 SwiftUI 里Binding是视图与数据之间的双向桥梁TextField显示值时调用get用户输入时调用set。平时你只需写$model.username就能拿到绑定。但当你想值一变就额外做点事比如立即保存、发起请求就有人手动构造绑定把逻辑塞进set闭包里// 手动 Binding用户每敲一个字符就触发 save() TextField(Username, text: Binding( get: { model.username }, set: { model.username $0; model.save() } ))这段代码能跑但正是 SwiftUI Pro 会标记出来的典型隐患。为什么值得警惕3 个隐藏坑 ⚠️1. 副作用藏进 set难以测试和维护save()这类业务逻辑被埋在绑定闭包中和业务代码混在一起既不好单测也不好复查。而 data.md 开篇就强调SwiftUI 的body代码与逻辑代码应当分离让代码更易读、易维护。2. body 会被频繁重算闭包副作用时机不可控技能在 performance.md 中提醒假设每个视图的body都会被高频调用。手动绑定写在body里意味着 get/set 闭包与视图生命周期深度耦合副作用的执行时机变得难以推理容易出现保存了几次、什么时候保存说不清的问题。3. 布局与逻辑混杂代码变得脆弱在 SKILL.md 的输出示例里技能把这类代码定性为The manual binding on line 31 isfragile and harder to maintain脆弱、更难维护优先级为数据流中等级别问题。推荐写法onChange 替代模式 ✅把绑定和副作用拆开绑定保持最纯粹的$model.username副作用显式挂到onChange()修饰符上。这正是技能给出的标准修复方案见 SKILL.md 第 73-87 行// 推荐绑定保持简单副作用交给 onChange TextField(Username, text: $model.username) .onChange(of: model.username) { model.save() }好处一目了然数据流清晰绑定只负责读写值一行就够副作用显式可见什么时候触发保存扫一眼修饰符就懂逻辑可下沉save()可以移到模型或视图模型中方便单元测试规则原文写得很直白Strongly prefer to avoid creating bindings usingBinding(get:set:)in view body code——强烈建议在视图 body 中避免手动构造绑定data.md 第 23 行。数字输入的场景也别用手动绑定 如果你的TextField是收集数字同样不需要Binding(get:set:)绑定到Int/Double并使用format初始化器即可例如TextField(Enter your score, value: $score, format: .number)再配合.keyboardType(.numberPad)或.keyboardType(.decimalPad)详见 data.md 第 24 行。规则在项目中的出处审查示例与输出格式swiftui-pro/SKILL.md数据流规则条款swiftui-pro/references/data.md面向其他 Agent 格式的副本swiftui-pro/skills/swiftui-pro/SKILL.md快速上手这个技能 克隆仓库并放入你的 AI 工具Claude Code、Codex、Gemini、Cursor 均支持 Agent Skills 格式git clone https://gitcode.com/GitHub_Trending/swi/SwiftUI-Agent-Skill安装完成后在 Claude Code 中输入/swiftui-pro、在 Codex 中输入$swiftui-pro即可触发审查也可以直接用自然语言例如用 SwiftUI Pro 技能找出这个项目里的数据流问题。更多安装方式见 README.md。总结清单❌ 别在视图 body 里手写Binding(get:set:)副作用藏在闭包里难以维护✅ 绑定交给State/Binding副作用用onChange()显式声明✅ 数字输入用value:format:初始化器 数字键盘✅ 让 AI 帮你把关装上 SwiftUI Pro让 data.md 这类清单自动审查你的 SwiftUI 代码掌握这套绑定归绑定、副作用归 onChange的模式你的 SwiftUI 代码会更简单、更可维护——这正是 SwiftUI-Agent-Skill 希望每一位开发者包括 AI都学会的写法。赞分享【免费下载链接】SwiftUI-Agent-SkillSwiftUI agent skill for Claude Code, Codex, and other AI tools.项目地址https://gitcode.com/GitHub_Trending/swi/SwiftUI-Agent-Skill点击查看免费下载相关推荐SwiftUI-Agent-Skill vs 传统提示词为什么Agent Skills格式让AI输出更稳定SwiftUI Agent Skill vs 传统提示词为什么Agent Skills格式让AI输出更稳定 SwiftUI Agent Skill 是一个面为什么uvicorn-gunicorn-fastapi-docker被弃用现代替代方案详解为什么uvicorn gunicorn fastapi docker被弃用现代替代方案详解 曾经备受推崇的 uvicorn gunicorn fastapi后端SwiftUI-Agent-Skill之Animatable宏教程一行代码替代手写animatableDataSwiftUI Agent Skill之Animatable宏教程一行代码替代手写animatableData SwiftUI Agent Skill 是一创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Linux文件描述符FD完全指南:内核原理、泄漏排查与epoll实践

Linux文件描述符FD完全指南:内核原理、泄漏排查与epoll实践

搞Linux服务端开发的人,迟早会被“文件描述符”(File Descriptor,FD)这个词弄到头疼。你在写多线程网络程序时发现连接数一高就报“Too Many Open Files”,或者用strace看到内核返回一串神秘数字,再或者排查…

2026/10/11 15:16:59 阅读更多 →
Git团队协作实战:分支命名、提交规范与冲突解决

Git团队协作实战:分支命名、提交规范与冲突解决

1. 先从分支和提交信息开始,把团队仓库的“规矩”立起来 团队协作这件事,我最早是在一个模拟项目里吃苦头吃出来的。当时五六个人同时改同一个仓库,分支名字五花八门:有人叫 fix ,有人叫 dev ,还有人直…

2026/10/11 15:16:59 阅读更多 →
GitHub日榜深度解析:从star增量到赛道趋势的实用方法论

GitHub日榜深度解析:从star增量到赛道趋势的实用方法论

GitHub 热榜项目 的日榜,是我每天早上的第一份技术早餐。2026-10-05 这天的榜单翻下来,第一感受是新面孔的比例比上周高了不少,而且大量集中在端侧推理、AI 编码工具的自托管配置、以及开发者体验相关的实验性仓库里。很多人看日榜只看“榜首…

2026/10/11 15:16:59 阅读更多 →

最新新闻

地下2米土壤墒情监测:管式监测仪如何改变灌溉决策

地下2米土壤墒情监测:管式监测仪如何改变灌溉决策

这大概是不少果园主、农场主都遇到过的怪事:叶片中午蔫下去,你赶紧浇水,浇了一小时,第二天反而更蔫。挖开土一看,表层10厘米明明是湿的,可往下翻到30厘米,手指甲都掐不进去的干土块,…

2026/10/11 20:13:02 阅读更多 →
ONNXRuntime 部署 PP-MattingV2 实时人像抠图:Python 与 C++ 推理实战

ONNXRuntime 部署 PP-MattingV2 实时人像抠图:Python 与 C++ 推理实战

简介:这份资源面向深度学习部署与计算机视觉方向的开发者,提供在ONNXRuntime上运行PaddleSeg实时人像抠图模型PP-MattingV2的完整实践材料,可用于社交媒体、视频编辑、虚拟现实等场景中发丝级人像分离的落地验证。压缩包共7个文件&#xff0c…

2026/10/11 20:13:02 阅读更多 →
AI File Sorter 文档分析指南:5 个步骤让 PDF/Office 文件自动获得清晰文件名

AI File Sorter 文档分析指南:5 个步骤让 PDF/Office 文件自动获得清晰文件名

AI 应用大模型本地部署桌面应用 【免费下载链接】ai-file-sorter Cross-platform desktop application for content-aware file organization and renaming. Supports local and remote LLMs, preview-based workflows, and fully user-controlled changes. 项目地址&#xff1…

2026/10/11 20:13:01 阅读更多 →
5分钟上手Minari:离线RL数据集安装、下载与加载快速入门

5分钟上手Minari:离线RL数据集安装、下载与加载快速入门

【免费下载链接】Minari A standard format for offline reinforcement learning datasets, with popular reference datasets and related utilities 项目地址: https://gitcode.com/gh_mirrors/mi/Minari 点击查看 免费下载 Minari 是一个专为**离线强化学习&…

2026/10/11 20:13:01 阅读更多 →
openJiuwen agent-core 文档解析器基类 Parser 深度解析:从抽象接口到多格式自动路由的完整实现

openJiuwen agent-core 文档解析器基类 Parser 深度解析:从抽象接口到多格式自动路由的完整实现

人工智能AI AgentAgent 框架大模型工具调用RAG提示工程强化学习 【免费下载链接】agent-core openJiuwen agent-core可提供AI Agent开发、运行、调优与演进相关的全套SDK能力 项目地址: https://gitcode.com/openJiuwen/agent-core 点击查看 免费下载 导读 Parser…

2026/10/11 20:13:01 阅读更多 →
Flink/PyFlink CSV读写实战:Schema声明与参数配置避坑

Flink/PyFlink CSV读写实战:Schema声明与参数配置避坑

先说个我上个月接手的真实任务:一批传感器历史数据以 CSV 文件存在对象存储里,需要灌进 Flink 流作业做实时指标计算。文件不大,三十来个分区,每分区几万行,字段也就四五个。我当时觉得这是最没技术含量的一步&#xf…

2026/10/11 20:12:01 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →