研究 Vue 3 源码的收获:从 TypeScript 参数属性到响应式副作用收集
阅读 Vue 3 源码时,作者从 constructor(public fn: () => T) 重新理解了 TypeScript 参数属性语法:public fn 会自动创建实例属性,相当于在构造函数中执行 this.fn = fn,该写法不能直接用于 JavaScript 类构造函数参数。源码通常不在构造函数中立即执行传入函数,而是先保存,再根据当前响应式作用域决定是否收集或停用副作用。
阅读 Vue 3 源码时,作者从 constructor(public fn: () => T) 重新理解了 TypeScript 参数属性语法:public fn 会自动创建实例属性,相当于在构造函数中执行 this.fn = fn,该写法不能直接用于 JavaScript 类构造函数参数。源码通常不在构造函数中立即执行传入函数,而是先保存,再根据当前响应式作用域决定是否收集或停用副作用。
文章介绍如何用 Neo4j 加 Text-to-Cypher 构建 GraphRAG,让 LLM 把自然语言问题翻译成 Cypher 查询,再从知识图谱取回实体关系作为上下文生成答案。
本文以 pi-rust 为例,用一条“读配置文件问超时时间”的消息串起编码 Agent 的完整运行链路,从 TUI 输入框提交、Harness 构造 AgentContext,到 Agent Loop 请求模型、执行工具并回填结果。
C++ 模板代码有三种主流组织方式:包含模型把声明与实现全部放入头文件,是日常开发与库开发的首选;显式实例化用 template 指示符手动生成指定类型实例,适合类型集合固定的场景;分离模型基于 export 关键字,因编译器支持极差且 C++11 后逐步废弃,不建议生产使用。包含模型带来的编译时间压力可用预编译头文件缓解。
作者基于 OpenCode v2.0.15 标签源码拆解插件加载机制,发现本地目录不按 package.json 的 main/exports 选择入口,而是硬编码探测 server 与 index 文件,配置指向单个 .js 文件会被记录 warning 后跳过。
Chatbot 联网能力由 web_search 与 web_fetch 两个工具分工实现:前者按主题返回候选来源,后者读取已知 URL 并提取可读正文。