1 line
82 KiB
JSON
1 line
82 KiB
JSON
[{"title":"2026 全球主流 AI 厂商百科全书:Agent 与推理觉醒时代","url":"/2026/03/25/ai%E5%8E%82%E5%95%86%E4%BB%8B%E7%BB%8D/","content":"<h1 id=\"2026-全球主流-AI-厂商百科全书\"><a href=\"#2026-全球主流-AI-厂商百科全书\" class=\"headerlink\" title=\"2026 全球主流 AI 厂商百科全书\"></a>2026 全球主流 AI 厂商百科全书</h1><blockquote>\n<p>步入 2026 年,AI 模型已经从被动一问一答的“对话助手”彻底进化为“全自动智能体(Agent)”与“深度推理专家”。本文将全景盘点当前处于行业金字塔顶端的顶尖大模型,以及那些凭借庞大生态强势破局的“新势力”,并附上最硬核的跑分与定价对比。</p>\n</blockquote>\n<span id=\"more\"></span>\n\n<p><img src=\"https://images.unsplash.com/photo-1677442136019-21780ecad995?auto=format&fit=crop&q=80&w=1000\" alt=\"AI Future 2026\"><br><em>(图:2026 年的 AI 已经深度融入算力网络与自动化流水线)</em></p>\n<hr>\n<h2 id=\"🌐-国际三巨头:AGI-的领跑者\"><a href=\"#🌐-国际三巨头:AGI-的领跑者\" class=\"headerlink\" title=\"🌐 国际三巨头:AGI 的领跑者\"></a>🌐 国际三巨头:AGI 的领跑者</h2><h3 id=\"1-OpenAI-ChatGPT-5-4-——-推理与多模态的绝对霸主\"><a href=\"#1-OpenAI-ChatGPT-5-4-——-推理与多模态的绝对霸主\" class=\"headerlink\" title=\"1. OpenAI (ChatGPT 5.4) —— 推理与多模态的绝对霸主\"></a>1. OpenAI (ChatGPT 5.4) —— 推理与多模态的绝对霸主</h3><p>OpenAI 在 2026 年推出的 <strong>ChatGPT 5.4</strong> 彻底打破了常规对话的局限,其最大的技术飞跃在于深度引入了“思考力控制(Reasoning Effort)”机制。它不再是盲目输出,而是会在复杂的数学和代码问题上“停下来思考”。</p>\n<ul>\n<li><strong>核心模型</strong>:<ul>\n<li><strong>GPT-5.4 Thinking</strong>: 推理专精版。在解决物理模拟或底层 C++ 内存泄漏问题时,它甚至会思考数分钟,然后给出一刀致命的完美解答。</li>\n<li><strong>GPT-5.4 Pro</strong>: 全能多模态旗舰,原生集成 Sora 2 级别的视频生成引擎。你甚至可以直接喂给它一段长达 1 小时的监控录像,让它找出异常帧。</li>\n</ul>\n</li>\n<li><strong>2026 杀手锏</strong>:<strong>全能智能体生态 (Universal Agent)</strong> —— 用户只需一句话:“帮我抢一张明天去北京的票并预订平时我常住的那家酒店”,GPT-5.4 就能自主联网、填表、甚至调用支付接口。</li>\n</ul>\n<p><img src=\"https://upload.wikimedia.org/wikipedia/commons/4/4d/OpenAI_Logo.svg\" alt=\"OpenAI Logo\"></p>\n<hr>\n<h3 id=\"2-Anthropic-Claude-4-6-——-程序员的赛博真神\"><a href=\"#2-Anthropic-Claude-4-6-——-程序员的赛博真神\" class=\"headerlink\" title=\"2. Anthropic (Claude 4.6) —— 程序员的赛博真神\"></a>2. Anthropic (Claude 4.6) —— 程序员的赛博真神</h3><p>被誉为“程序员之神”的 Anthropic,在 <strong>Claude 4.6</strong> 世代把代码能力推向了不可思议的新高度。它不仅懂代码,更懂复杂的工程架构。</p>\n<ul>\n<li><strong>核心模型</strong>:<ul>\n<li><strong>Claude 4.6 Opus</strong>: 超大杯旗舰,具备超凡的逻辑严密性与 500 万 Token 的上下文整合能力。你可以直接把一整个包含几百个文件的 GitHub 仓库扔给它。</li>\n<li><strong>Claude 4.6 Sonnet</strong>: 编程首选,性价比极高,SWE-bench(软件工程测试)稳居第一梯队。</li>\n</ul>\n</li>\n<li><strong>2026 杀手锏</strong>:<strong>原生 Computer Use (计算机控制)</strong> —— 赋予模型像人类一样直接操作电脑屏幕的能力。<ul>\n<li><em>场景演示</em>:告诉 Claude “帮我测试一下最新的前端页面”,它会自动打开浏览器,点击按钮,截图,比对 UI 设计稿,并在终端里运行 <code>npm test</code>。</li>\n</ul>\n</li>\n</ul>\n<p><img src=\"https://images.unsplash.com/photo-1555066931-4365d14bab8c?auto=format&fit=crop&q=80&w=1000\" alt=\"Claude API Screenshot\"><br><em>(图示意:Claude 4.6 直接读取 IDE 并在终端执行测试脚本的自动化工作流)</em></p>\n<hr>\n<h3 id=\"3-Google-Gemini-3-1-——-算力巨兽与多模态天花板\"><a href=\"#3-Google-Gemini-3-1-——-算力巨兽与多模态天花板\" class=\"headerlink\" title=\"3. Google (Gemini 3.1) —— 算力巨兽与多模态天花板\"></a>3. Google (Gemini 3.1) —— 算力巨兽与多模态天花板</h3><p>凭借深厚的底层 TPU 算力与 Google Workspace 全家桶,<strong>Gemini 3.1</strong> 成为了原生多模态与超长上下文的“巨无霸”。</p>\n<ul>\n<li><strong>核心模型</strong>:<ul>\n<li><strong>Gemini 3.1 Ultra</strong>: 逻辑之王,ARC-AGI-2 测试得分登顶,并内置了针对复杂架构设计的异步编程 Agent (Jules)。</li>\n<li><strong>Gemini 3.1 Pro</strong>: 在响应速度与超长文本处理间达到了完美的平衡。</li>\n</ul>\n</li>\n<li><strong>2026 杀手锏</strong>:<strong>百万级原生多模态分析</strong> —— 这是真正的跨模态理解。它能同时读取 100 份 PDF 财报和 50 段企业宣发视频,交叉比对找出其中的逻辑漏洞。</li>\n</ul>\n<p><img src=\"https://upload.wikimedia.org/wikipedia/commons/8/8a/Google_Gemini_logo.svg\" alt=\"Google Gemini\"></p>\n<hr>\n<h2 id=\"🇨🇳-国内三强:极客精神与-Agent-原生\"><a href=\"#🇨🇳-国内三强:极客精神与-Agent-原生\" class=\"headerlink\" title=\"🇨🇳 国内三强:极客精神与 Agent 原生\"></a>🇨🇳 国内三强:极客精神与 Agent 原生</h2><h3 id=\"1-月之暗面-Kimi-2-5-——-你的专属-Agent-集群\"><a href=\"#1-月之暗面-Kimi-2-5-——-你的专属-Agent-集群\" class=\"headerlink\" title=\"1. 月之暗面 (Kimi 2.5) —— 你的专属 Agent 集群\"></a>1. 月之暗面 (Kimi 2.5) —— 你的专属 Agent 集群</h3><p>Kimi 早已不是那个只能“吃长文”的助手,2026 年的它,更像是一个拥有无数个分身的项目经理。</p>\n<ul>\n<li><strong>核心模型</strong>:<strong>Kimi 2.5</strong>。</li>\n<li><strong>2026 亮点</strong>:基于万亿(1T)参数 MoE 架构,原生支持文、图、视混合处理。最令人惊艳的是其 <strong>Agent Swarm (智能体集群)</strong> 技术。<ul>\n<li><em>场景演示</em>:你想写一本小说。Kimi 2.5 会自动分裂出“大纲策划 Agent”、“文笔润色 Agent”和“逻辑校对 Agent”,它们在后台互相讨论,最后给你一份完美终稿。</li>\n</ul>\n</li>\n</ul>\n<p><img src=\"https://images.unsplash.com/photo-1517694712202-14dd9538aa97?auto=format&fit=crop&q=80&w=1000\" alt=\"Kimi Agent UI\"><br><em>(图示意:Kimi 2.5 后台多个智能体协作处理复杂代码的流水线)</em></p>\n<hr>\n<h3 id=\"2-MiniMax-2-7-——-自我进化的性价比狂魔\"><a href=\"#2-MiniMax-2-7-——-自我进化的性价比狂魔\" class=\"headerlink\" title=\"2. MiniMax 2.7 —— 自我进化的性价比狂魔\"></a>2. MiniMax 2.7 —— 自我进化的性价比狂魔</h3><p>在 2026 年异军突起的 MiniMax,主打“高情商”、“极速”与“全网最低的 Token 成本”。</p>\n<ul>\n<li><strong>核心模型</strong>:**MiniMax 2.7 (M2.7)**。</li>\n<li><strong>2026 亮点</strong>:<strong>深度自我迭代架构</strong>。它的推理速度高达惊人的 100 TPS。对于独立开发者来说,拿它来做大并发的网页翻译或群控机器人,成本低到几乎可以忽略不计,但编程能力却依然在线。</li>\n</ul>\n<hr>\n<h3 id=\"3-智谱-AI-GLM-5-——-学院派的工程重器\"><a href=\"#3-智谱-AI-GLM-5-——-学院派的工程重器\" class=\"headerlink\" title=\"3. 智谱 AI (GLM 5) —— 学院派的工程重器\"></a>3. 智谱 AI (GLM 5) —— 学院派的工程重器</h3><p>作为清华系学院派的代表,智谱的 <strong>GLM 5</strong> 在企业级工程化与科研学术领域表现出了极其硬核的特质。</p>\n<ul>\n<li><strong>核心模型</strong>:<strong>GLM 5</strong>(超大参数集群)。</li>\n<li><strong>2026 亮点</strong>:**Agentic Engineering (工程化智能体)**。在长程规划和复杂资源管理任务中表现优异。对于需要本地化部署、撰写深度行业研报的大型企业来说,GLM 5 是国内最稳健的安全底座。</li>\n</ul>\n<p><img src=\"https://images.unsplash.com/photo-1451187580459-43490279c0fa?auto=format&fit=crop&q=80&w=1000\" alt=\"GLM Architecture\"><br><em>(图示意:GLM 5 处理海量服务器集群日志并输出可视化分析研报)</em></p>\n<hr>\n<h2 id=\"🚀-并非首选,但绝不可忽视的“生态破局者”\"><a href=\"#🚀-并非首选,但绝不可忽视的“生态破局者”\" class=\"headerlink\" title=\"🚀 并非首选,但绝不可忽视的“生态破局者”\"></a>🚀 并非首选,但绝不可忽视的“生态破局者”</h2><h3 id=\"1-xAI-Grok-3-——-无法无天的实时信息网\"><a href=\"#1-xAI-Grok-3-——-无法无天的实时信息网\" class=\"headerlink\" title=\"1. xAI (Grok 3) —— 无法无天的实时信息网\"></a>1. xAI (Grok 3) —— 无法无天的实时信息网</h3><p>埃隆·马斯克旗下的 <strong>Grok 3</strong> 深度绑定了 X (原 Twitter)。</p>\n<ul>\n<li><strong>核心优势</strong>:<strong>全网最强实时性</strong>。当一个突发新闻或漏洞刚刚在网络上冒头,Grok 3 是唯一能在第一时间获取到最全讨论上下文的模型。它还拥有极具幽默感且“不设限 (Uncensored)”的回答风格。</li>\n<li><strong>适用场景</strong>:实时舆情监控、金融量化高频交易分析、寻找全网最新开源项目线索。</li>\n</ul>\n<p><img src=\"https://upload.wikimedia.org/wikipedia/commons/e/e6/XAI_Logo.svg\" alt=\"xAI Logo\"></p>\n<h3 id=\"2-字节跳动-豆包-Doubao-——-卷王之王的语音与下沉市场\"><a href=\"#2-字节跳动-豆包-Doubao-——-卷王之王的语音与下沉市场\" class=\"headerlink\" title=\"2. 字节跳动 (豆包 Doubao) —— 卷王之王的语音与下沉市场\"></a>2. 字节跳动 (豆包 Doubao) —— 卷王之王的语音与下沉市场</h3><p>依托抖音和飞书的庞大生态,<strong>豆包大模型</strong> 在 2026 年打出了“地板价”的王牌。</p>\n<ul>\n<li><strong>核心优势</strong>:<strong>变态级的价格与拟真语音</strong>。豆包的 API 价格几乎是友商的十分之一。同时,其 Voice 模型的情感表现力达到了真假难辨的地步,支持实时的极低延迟打断。</li>\n<li><strong>适用场景</strong>:虚拟主播、语音客服客服系统、日活千万级的轻量级移动端应用。</li>\n</ul>\n<h3 id=\"3-阿里云-通义千问-Qwen-3-——-开源界的带头大哥\"><a href=\"#3-阿里云-通义千问-Qwen-3-——-开源界的带头大哥\" class=\"headerlink\" title=\"3. 阿里云 (通义千问 Qwen 3) —— 开源界的带头大哥\"></a>3. 阿里云 (通义千问 Qwen 3) —— 开源界的带头大哥</h3><p>Qwen 系列在 2026 年依然是开源社区最亮眼的星。</p>\n<ul>\n<li><strong>核心优势</strong>:<strong>阿里云生态深度整合</strong>。它无缝集成在钉钉和阿里云百炼平台中。Qwen 3 的开源版本在 HuggingFace 上下载量霸榜,其 Math 和 Coder 版本被无数中小企业拿来作为私有化微调的基座。</li>\n<li><strong>适用场景</strong>:企业本地化私有部署、基于阿里云架构的云原生微服务监控。</li>\n</ul>\n<hr>\n<h2 id=\"💬-真实用户体验与网络吐槽-Real-World-UX\"><a href=\"#💬-真实用户体验与网络吐槽-Real-World-UX\" class=\"headerlink\" title=\"💬 真实用户体验与网络吐槽 (Real-World UX)\"></a>💬 真实用户体验与网络吐槽 (Real-World UX)</h2><p>纸面数据再强,也敌不过用户的“键盘投票”。以下是 2026 年各大社区(V2EX, Reddit, 掘金)对这些厂商最真实的评价:</p>\n<ul>\n<li>🔴 <strong>ChatGPT 5.4</strong>:“推理能力确实神仙,但我只是问它中午吃什么,它给我思考了 3 分钟并列出了一份包含卡路里摄入的三日营养规划……而且不知不觉烧了我两块钱的 Token。建议平时关掉 Thinking 模式保平安。”</li>\n<li>🟡 <strong>Claude 4.6</strong>:“Computer Use 是真的震撼,看着它操控我的鼠标在那儿跑测试,我感觉自己像个监工。不过它偶尔因为网卡顿点错位置,直接把我的测试库给删了,吓出一身冷汗。”</li>\n<li>🔵 <strong>Gemini 3.1</strong>:“喂给它两小时没字幕的讲座视频,它能精准定位到 45 分 12 秒的那个知识点,多模态简直是外星科技!但在纯中文语境下,它有时候行文还是有点‘机翻味’。”</li>\n<li>🌙 <strong>Kimi 2.5</strong>:“Agent Swarm 绝了,用来洗稿、写长篇网文或者整理几十万字的会议记录,它是国内真神。不过千万别让它独立改底层代码,它依然会因为幻觉虚构出一些不存在的 NPM 包。”</li>\n<li>🎵 <strong>豆包 / MiniMax</strong>:“这俩的语音通话太可怕了,尤其是带情绪打断的功能。我跟 MiniMax 吵了一架,它委屈的语气让我觉得我自己在霸凌一个真人。”</li>\n<li>💼 <strong>GLM / Qwen</strong>:“部署在公司内网后,这俩就是打工人的核武器。一键读取所有数据库日志生成本周周报,早下班全靠它们了。”</li>\n</ul>\n<hr>\n<h2 id=\"📊-2026-大模型硬核数据对比-核心整合\"><a href=\"#📊-2026-大模型硬核数据对比-核心整合\" class=\"headerlink\" title=\"📊 2026 大模型硬核数据对比 (核心整合)\"></a>📊 2026 大模型硬核数据对比 (核心整合)</h2><p>进入 2026 年,单纯比拼 Token 价格已不够,很多模型在生成答案前会消耗大量隐性的“思考 Token (Reasoning Effort)”。以下是当前主流厂商的硬核对比数据:</p>\n<h3 id=\"1-API-价格对比-每-1M-Tokens,美元计价基准\"><a href=\"#1-API-价格对比-每-1M-Tokens,美元计价基准\" class=\"headerlink\" title=\"1. API 价格对比 (每 1M Tokens,美元计价基准)\"></a>1. API 价格对比 (每 1M Tokens,美元计价基准)</h3><table>\n<thead>\n<tr>\n<th align=\"left\">模型版本</th>\n<th align=\"left\">输入价格</th>\n<th align=\"left\">输出价格 (含推理预估)</th>\n<th align=\"left\">核心卖点与生态优势</th>\n</tr>\n</thead>\n<tbody><tr>\n<td align=\"left\"><strong>豆包 Doubao-Pro</strong></td>\n<td align=\"left\"><code>$0.05</code></td>\n<td align=\"left\"><code>$0.20</code></td>\n<td align=\"left\">📉 <strong>地板价之王</strong>,原生支持极低延迟语音</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>MiniMax 2.7</strong></td>\n<td align=\"left\"><code>$0.30</code></td>\n<td align=\"left\"><code>$1.20</code></td>\n<td align=\"left\">🤑 性价比极高,适合大规模 Agent 并发部署</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>通义千问 Qwen 3</strong></td>\n<td align=\"left\"><code>$0.40</code></td>\n<td align=\"left\"><code>$1.50</code></td>\n<td align=\"left\">阿里云生态深度绑定,开源微调基座首选</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>Kimi 2.5</strong></td>\n<td align=\"left\"><code>$0.60</code></td>\n<td align=\"left\"><code>$2.50</code></td>\n<td align=\"left\">长文本无敌,国内智能体 (Agent Swarm) 体验最佳</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>GLM 5</strong></td>\n<td align=\"left\"><code>$1.00</code></td>\n<td align=\"left\"><code>$3.20</code></td>\n<td align=\"left\">企业私有化部署标杆,工程研报专精</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>Grok 3</strong></td>\n<td align=\"left\"><code>$2.00</code></td>\n<td align=\"left\"><code>$10.00</code></td>\n<td align=\"left\">🐦 独占 Twitter 实时数据流,无内容审查</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>Claude 4.6 Sonnet</strong></td>\n<td align=\"left\"><code>$3.00</code></td>\n<td align=\"left\"><code>$15.00</code></td>\n<td align=\"left\">国际中端性价比之王,程序员全自动 Debug 核心</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>ChatGPT 5.4 标版</strong></td>\n<td align=\"left\"><code>$2.50</code></td>\n<td align=\"left\"><code>$15.00</code></td>\n<td align=\"left\">综合能力标杆,多模态最强</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>Gemini 3.1 Pro</strong></td>\n<td align=\"left\"><code>$2.00</code></td>\n<td align=\"left\"><code>$12.00</code></td>\n<td align=\"left\">原生百万级上下文,Google 全家桶深度整合</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>Claude 4.6 Opus</strong></td>\n<td align=\"left\"><code>$15.00</code></td>\n<td align=\"left\"><code>$75.00</code></td>\n<td align=\"left\">昂贵,但逻辑无懈可击,适合架构级重构</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>ChatGPT 5.4 Pro</strong></td>\n<td align=\"left\"><code>$30.00</code></td>\n<td align=\"left\"><code>$180.00</code></td>\n<td align=\"left\">💎 <strong>土豪专属</strong>,极长思考时间,最高算力倾斜</td>\n</tr>\n</tbody></table>\n<h3 id=\"2-个人-开发者订阅套餐对比\"><a href=\"#2-个人-开发者订阅套餐对比\" class=\"headerlink\" title=\"2. 个人/开发者订阅套餐对比\"></a>2. 个人/开发者订阅套餐对比</h3><p><img src=\"https://images.unsplash.com/photo-1633158829585-23ba8f7c8caf?auto=format&fit=crop&q=80&w=1000\" alt=\"Subscription Pricing\"></p>\n<table>\n<thead>\n<tr>\n<th align=\"left\">厂商</th>\n<th align=\"left\">个人标准版月费</th>\n<th align=\"left\">旗舰/Pro版月费</th>\n<th align=\"left\">适用场景</th>\n</tr>\n</thead>\n<tbody><tr>\n<td align=\"left\"><strong>豆包</strong></td>\n<td align=\"left\">免费/极低门槛</td>\n<td align=\"left\">¥99 /月</td>\n<td align=\"left\">语音陪伴、轻度日常问答</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>MiniMax</strong></td>\n<td align=\"left\">¥29 /月</td>\n<td align=\"left\">¥199 /月</td>\n<td align=\"left\">学生党、独立开发者尝鲜</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>GLM / Qwen</strong></td>\n<td align=\"left\">¥40 /月</td>\n<td align=\"left\">¥159 /月</td>\n<td align=\"left\">企业报表处理、云服务资源管理</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>Kimi</strong></td>\n<td align=\"left\">¥49 /月</td>\n<td align=\"left\">¥699 /月</td>\n<td align=\"left\">深度内容创作者、重度 Agent 玩家</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>Grok (X Premium)</strong></td>\n<td align=\"left\">$16.00 /月</td>\n<td align=\"left\">$22.00 /月</td>\n<td align=\"left\">币圈玩家、时政新闻记者</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>Google</strong></td>\n<td align=\"left\">$19.99 /月</td>\n<td align=\"left\">$249.99 /月</td>\n<td align=\"left\">谷歌生态重度用户、海量文档研究员</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>Anthropic</strong></td>\n<td align=\"left\">$20.00 /月</td>\n<td align=\"left\">$100+ /月</td>\n<td align=\"left\">全栈程序员、需要 Computer Use 控制电脑的人</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>OpenAI</strong></td>\n<td align=\"left\">$20.00 /月</td>\n<td align=\"left\">$200.00 /月</td>\n<td align=\"left\">追求极致多模态体验、最前沿 AGI 信仰者</td>\n</tr>\n</tbody></table>\n<h3 id=\"3-核心能力评测标杆\"><a href=\"#3-核心能力评测标杆\" class=\"headerlink\" title=\"3. 核心能力评测标杆\"></a>3. 核心能力评测标杆</h3><ul>\n<li><strong>编程与代码能力 (SWE-Bench)<strong>:</strong>Claude 4.6 Sonnet</strong> 稳居榜首。国产则由 <strong>Qwen 3 Coder</strong> 领跑。</li>\n<li><strong>逻辑推理与复杂推演 (ARC-AGI)<strong>:</strong>ChatGPT 5.4 Pro (Thinking)</strong> 与 <strong>Gemini 3.1 Ultra</strong> 断层领先。</li>\n<li><strong>长上下文与多模态</strong>:<strong>Gemini 3.1</strong> (1M+) 原生多模态第一,国内 <strong>Kimi 2.5</strong> 的长文本体验最佳。</li>\n</ul>\n<hr>\n<h2 id=\"💡-2026-总结:你的数字外脑选型决策树\"><a href=\"#💡-2026-总结:你的数字外脑选型决策树\" class=\"headerlink\" title=\"💡 2026 总结:你的数字外脑选型决策树\"></a>💡 2026 总结:你的数字外脑选型决策树</h2><p>在这个能力严重溢出的年代,选型的核心在于你的<strong>工作流属性与生态绑定度</strong>:</p>\n<figure class=\"highlight text\"><table><tr><td class=\"code\"><pre><span class=\"line\">┌─────────────────────────────────────────────────────────┐</span><br><span class=\"line\">│ 2026 选型决策树 │</span><br><span class=\"line\">├─────────────────────────────────────────────────────────┤</span><br><span class=\"line\">│ │</span><br><span class=\"line\">│ 需要极客级的自动写代码/改Bug/接管电脑屏幕? │</span><br><span class=\"line\">│ ├─ 预算充足,追求极限 → Claude 4.6 Sonnet │</span><br><span class=\"line\">│ └─ 开源微调,自建生态 → Qwen 3 Coder │</span><br><span class=\"line\">│ │</span><br><span class=\"line\">│ 需要处理长文本、海量文件、或者打造自己的 Agent 集群? │</span><br><span class=\"line\">│ ├─ 具备海外节点,深度使用谷歌 → Gemini 3.1 │</span><br><span class=\"line\">│ └─ 国内直连,中文语境最佳 → Kimi 2.5 │</span><br><span class=\"line\">│ │</span><br><span class=\"line\">│ 需要获取极速的实时新闻、无审查的锐评? │</span><br><span class=\"line\">│ └─ 直接上 → Grok 3 (绑定 X) │</span><br><span class=\"line\">│ │</span><br><span class=\"line\">│ 需要大规模高并发处理,或者打造语音客服系统? │</span><br><span class=\"line\">│ ├─ 极高性价比,智能进化 → MiniMax 2.7 │</span><br><span class=\"line\">│ └─ 地板价,极限语音拟真 → 豆包 Doubao │</span><br><span class=\"line\">│ │</span><br><span class=\"line\">│ 需要解决顶尖的学术/数学/逻辑难题,且不在乎钱? │</span><br><span class=\"line\">│ └─ 直接拉满思考时间 → ChatGPT 5.4 Pro (Thinking) │</span><br><span class=\"line\">│ │</span><br><span class=\"line\">└─────────────────────────────────────────────────────────┘</span><br></pre></td></tr></table></figure>\n\n<blockquote>\n<p>⚠️ <strong>避坑指南</strong>:在调用 ChatGPT 5.4 或 Claude 4.6 进行简单的日常闲聊时,<strong>请务必调低 API 的 <code>reasoning_effort</code> (思考力度) 参数</strong>。否则隐形成本会让你月底的账单直接爆炸!</p>\n</blockquote>\n<hr>\n<p><strong>相关推荐</strong></p>\n<ul>\n<li><a href=\"/\">2026 AI 编程与开发工具深度对比:从 Cursor 到 Gemini CLI</a> - 开发效率提升实战</li>\n<li><a href=\"/\">大模型 API 降本增效实战</a> - 如何规避高昂的“推理税”并结合开源基座</li>\n</ul>\n","categories":["知识库"],"tags":["技术","AI","行业分析","大模型"]},{"title":"2026 AI 编程与开发工具深度对比:从 Cursor 到 Gemini CLI","url":"/2026/03/25/ai%E5%8E%82%E5%95%86%E5%AF%B9%E6%AF%94%E5%88%86%E6%9E%90/","content":"<h1 id=\"2026-AI-编程与开发工具深度对比\"><a href=\"#2026-AI-编程与开发工具深度对比\" class=\"headerlink\" title=\"2026 AI 编程与开发工具深度对比\"></a>2026 AI 编程与开发工具深度对比</h1><blockquote>\n<p>2026 年,写代码的方式彻底变了。我们不再逐行敲击键盘,而是作为“架构师”,指挥着一群不知疲倦的 AI 智能体 (Agents) 为我们打工。本文将深度剖析当前市面上最主流的 9 款 AI 开发神器。</p>\n</blockquote>\n<span id=\"more\"></span>\n\n<p><img src=\"https://images.unsplash.com/photo-1555066931-4365d14bab8c?auto=format&fit=crop&q=80&w=1000\" alt=\"AI Coding Concept\"><br><em>(图:2026 年的开发日常 —— 喝着咖啡看 Agent 重构代码)</em></p>\n<hr>\n<h2 id=\"🛠️-核心阵营划分\"><a href=\"#🛠️-核心阵营划分\" class=\"headerlink\" title=\"🛠️ 核心阵营划分\"></a>🛠️ 核心阵营划分</h2><p>2026 年的 AI 工具市场已分化为四大流派:</p>\n<ol>\n<li><strong>IDE 原生派 (AI-First IDEs)</strong>: Cursor, Trae, Antigravity</li>\n<li><strong>终端智能体 (CLI Agents)</strong>: Claude Code, Gemini CLI, Kimi Code</li>\n<li><strong>插件与桌面端 (Plugins & Apps)</strong>: GitHub Copilot, Codex App</li>\n<li><strong>开源极客派 (Open Source)</strong>: OpenClaw</li>\n</ol>\n<hr>\n<h2 id=\"1-IDE-原生派:代码编辑器的新王\"><a href=\"#1-IDE-原生派:代码编辑器的新王\" class=\"headerlink\" title=\"1. IDE 原生派:代码编辑器的新王\"></a>1. IDE 原生派:代码编辑器的新王</h2><p>如果你不想折腾配置,开箱即用的 AI IDE 是最佳选择。</p>\n<h3 id=\"Cursor-——-依然是无可争议的王者\"><a href=\"#Cursor-——-依然是无可争议的王者\" class=\"headerlink\" title=\"Cursor —— 依然是无可争议的王者\"></a>Cursor —— 依然是无可争议的王者</h3><ul>\n<li><strong>核心卖点</strong>:<strong>Composer 模式</strong>。它可以一口气在多个文件中穿梭,自动分析你的整个 Codebase 并一次性提交涉及数十个文件的 PR。</li>\n<li><strong>2026 现状</strong>:引入了极速的 Speculative Edits(推测性编辑),哪怕是巨大的 Monorepo 也能做到毫秒级响应。</li>\n<li><strong>价格</strong>:Pro 计划 <code>$20/月</code>。</li>\n<li><strong>适用人群</strong>:全栈工程师、独立开发者。</li>\n</ul>\n<h3 id=\"Trae-字节跳动-——-Vibe-Coding-的倡导者\"><a href=\"#Trae-字节跳动-——-Vibe-Coding-的倡导者\" class=\"headerlink\" title=\"Trae (字节跳动) —— Vibe Coding 的倡导者\"></a>Trae (字节跳动) —— Vibe Coding 的倡导者</h3><ul>\n<li><strong>核心卖点</strong>:**Adaptive Routing (自适应路由)**。它会根据你当前写的代码复杂度,自动在极速模型(豆包)和重度推理模型之间无缝切换。其中文语境理解极佳。</li>\n<li><strong>2026 现状</strong>:深度整合了飞书和国内云生态,堪称国内大厂搬砖神器。</li>\n<li><strong>价格</strong>:标准版免费,Pro 版约 <code>¥99/月</code>。</li>\n</ul>\n<h3 id=\"Antigravity-Google-——-端到端测试核武器\"><a href=\"#Antigravity-Google-——-端到端测试核武器\" class=\"headerlink\" title=\"Antigravity (Google) —— 端到端测试核武器\"></a>Antigravity (Google) —— 端到端测试核武器</h3><ul>\n<li><strong>核心卖点</strong>:<strong>Browser Agent</strong>。这是 Google 推出的重量级武器。它不仅能写代码,还能自动拉起 Chrome 浏览器,像真人一样点击 UI、跑通 E2E 测试并截图反馈错误。</li>\n<li><strong>2026 现状</strong>:与 Gemini 3.1 深度绑定,多模态(看图写 UI)能力天下第一。</li>\n<li><strong>价格</strong>:基础版免费,Pro 版 <code>$20/月</code>。</li>\n</ul>\n<p><img src=\"https://images.unsplash.com/photo-1618401471353-b98afee0b2eb?auto=format&fit=crop&q=80&w=1000\" alt=\"IDE Comparison\"></p>\n<hr>\n<h2 id=\"2-终端智能体-CLI-Agents-:黑客的终极浪漫\"><a href=\"#2-终端智能体-CLI-Agents-:黑客的终极浪漫\" class=\"headerlink\" title=\"2. 终端智能体 (CLI Agents):黑客的终极浪漫\"></a>2. 终端智能体 (CLI Agents):黑客的终极浪漫</h2><p>真正的极客从不离开 Terminal。2026 年的终端工具已经可以接管整个操作系统。</p>\n<h3 id=\"Claude-Code-——-逻辑天花板\"><a href=\"#Claude-Code-——-逻辑天花板\" class=\"headerlink\" title=\"Claude Code —— 逻辑天花板\"></a>Claude Code —— 逻辑天花板</h3><ul>\n<li><strong>核心卖点</strong>:由 <strong>Claude 4.6 Opus</strong> 驱动。你只需在终端输入 <code>claude "帮我把整个后端的鉴权逻辑改成 OAuth 2.0"</code>,它会自主搜索文件、读代码、安装依赖、甚至运行单元测试,直到报错全部消失。</li>\n<li><strong>适用场景</strong>:重构庞大的遗留代码库 (Legacy Code)。</li>\n</ul>\n<h3 id=\"Gemini-CLI-——-性价比与搜索之王\"><a href=\"#Gemini-CLI-——-性价比与搜索之王\" class=\"headerlink\" title=\"Gemini CLI —— 性价比与搜索之王\"></a>Gemini CLI —— 性价比与搜索之王</h3><ul>\n<li><strong>核心卖点</strong>:依托于 Google 强大的实时搜索。当遇到冷门库的报错时,它会自动联网翻阅 GitHub Issues 和 StackOverflow,并直接在本地应用补丁。</li>\n<li><strong>价格</strong>:免费额度极其慷慨,性价比碾压。</li>\n</ul>\n<h3 id=\"Kimi-Code-——-本土化的-Agent-Swarm\"><a href=\"#Kimi-Code-——-本土化的-Agent-Swarm\" class=\"headerlink\" title=\"Kimi Code —— 本土化的 Agent Swarm\"></a>Kimi Code —— 本土化的 Agent Swarm</h3><ul>\n<li><strong>核心卖点</strong>:极低的 API 成本和强大的 **Agent Swarm (智能体集群)**。它可以瞬间分裂出多个子进程,并行处理不同模块的开发。</li>\n</ul>\n<hr>\n<h2 id=\"3-插件与桌面端:稳健的经典流派\"><a href=\"#3-插件与桌面端:稳健的经典流派\" class=\"headerlink\" title=\"3. 插件与桌面端:稳健的经典流派\"></a>3. 插件与桌面端:稳健的经典流派</h2><h3 id=\"GitHub-Copilot-2026-版\"><a href=\"#GitHub-Copilot-2026-版\" class=\"headerlink\" title=\"GitHub Copilot (2026 版)\"></a>GitHub Copilot (2026 版)</h3><ul>\n<li><strong>现状</strong>:全面支持 **MCP (Model Context Protocol)**,你可以一键切换底层的模型(GPT-5, Claude, 甚至国产模型)。它依然是企业级采购的首选,市场占有率最高。</li>\n<li><strong>价格</strong>:Individual <code>$10/月</code>。</li>\n</ul>\n<h3 id=\"Codex-App-OpenAI\"><a href=\"#Codex-App-OpenAI\" class=\"headerlink\" title=\"Codex App (OpenAI)\"></a>Codex App (OpenAI)</h3><ul>\n<li><strong>核心卖点</strong>:2026 年 OpenAI 推出的独立原生应用(支持 macOS/Windows)。</li>\n<li><strong>争议点</strong>:引入了 <strong>Rolling Window</strong> 限制。Pro 订阅(<code>$200/月</code>)允许在云端沙盒(Sandboxed Execution)中并行跑测试,彻底解放本地算力,是土豪开发者的最爱。</li>\n</ul>\n<hr>\n<h2 id=\"4-开源黑马:OpenClaw\"><a href=\"#4-开源黑马:OpenClaw\" class=\"headerlink\" title=\"4. 开源黑马:OpenClaw\"></a>4. 开源黑马:OpenClaw</h2><p>如果你是一个重度掌控欲患者,<strong>OpenClaw</strong>(原名 Moltbot)是 2026 年不可不试的神器。</p>\n<ul>\n<li><strong>核心优势</strong>:<strong>完全开源、本地运行</strong>。它可以读取你的文件系统、执行 Shell 命令。更有趣的是,它支持远程唤醒:你可以躺在床上发个 WhatsApp 消息:“小 O,帮我把昨晚写的爬虫部署到服务器上”,它就会自动执行并给你发送进度截图。</li>\n<li><strong>价格</strong>:免费(自带 API Key)。</li>\n</ul>\n<p><img src=\"https://images.unsplash.com/photo-1629654297299-c8506221ca97?auto=format&fit=crop&q=80&w=1000\" alt=\"Open Source Terminal\"><br><em>(图:在终端中运行的开源智能体正在疯狂拉取依赖并编译)</em></p>\n<hr>\n<h2 id=\"🔥-开发者真实体感与吐槽-Developer-UX-Pain-Points\"><a href=\"#🔥-开发者真实体感与吐槽-Developer-UX-Pain-Points\" class=\"headerlink\" title=\"🔥 开发者真实体感与吐槽 (Developer UX & Pain Points)\"></a>🔥 开发者真实体感与吐槽 (Developer UX & Pain Points)</h2><p>任何工具都有其暗面。在 2026 年的高强度开发流中,这些工具暴露出了哪些最真实的痛点?</p>\n<ul>\n<li><strong>Cursor 被惯坏综合征</strong>:“自从用了 Cursor 的 Composer 之后,我发现我已经不会写正则和基础的 reduce 语法了。但最搞人心态的是,在庞大的 Monorepo 里,它有时候会莫名其妙把别的微服务里的配置文件改掉,排查起来简直要命。”</li>\n<li><strong>Trae 的薛定谔体验</strong>:“Trae 在国内写业务确实爽,特别是飞书文档直接转代码的链路。但我用它写底层 Rust 和 C++ 的时候,明显感觉它的逻辑深度不如 Claude。所谓的 Vibe Coding,前提是你别碰造轮子的活儿。”</li>\n<li><strong>Antigravity 的失业恐惧</strong>:“看到 Browser Agent 自动帮我打开浏览器、登录、点赞、截图并修复报错的那一刻,我没有感到高兴,我感到的是深切的被剥夺工作的恐惧……不过它报错的时候,去查它的执行日志,经常能看到它自己在两个网页间死循环反复横跳。”</li>\n<li><strong>Claude Code 与破产警告</strong>:“看着终端里 Claude Code 疯狂自己滚代码、查日志、调接口,真的有种身处《黑客帝国》的快感。但跑了半小时重构完,一看 API 账单扣了 50 刀,心都在滴血。”</li>\n<li><strong>Copilot 的‘中庸之道’</strong>:“2026 年了,Copilot 依然像个稳定的公务员。不出错,也没有特别亮眼的 Agent 操作。但它胜在稳定,且企业版数据安全政策做得最到位。”</li>\n</ul>\n<hr>\n<h2 id=\"💡-2026-架构师选型建议\"><a href=\"#💡-2026-架构师选型建议\" class=\"headerlink\" title=\"💡 2026 架构师选型建议\"></a>💡 2026 架构师选型建议</h2><p>在 2026 年,不要试图用一个工具解决所有问题,<strong>Multi-tool Stacking (多工具堆叠)</strong> 才是王道。</p>\n<table>\n<thead>\n<tr>\n<th align=\"left\">你的开发需求</th>\n<th align=\"left\">推荐的工具组合</th>\n<th align=\"left\">预期成本</th>\n</tr>\n</thead>\n<tbody><tr>\n<td align=\"left\"><strong>追求极致的开发与重构体验</strong></td>\n<td align=\"left\"><strong>Cursor</strong> (写代码) + <strong>Claude Code</strong> (跑终端 Agent)</td>\n<td align=\"left\">~$40 / 月</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>性价比之王 / 学生党</strong></td>\n<td align=\"left\"><strong>Trae</strong> (免费版) + <strong>Gemini CLI</strong> (白嫖额度)</td>\n<td align=\"left\">免费</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>接私活 / 快速原型交付</strong></td>\n<td align=\"left\"><strong>Antigravity</strong> (利用 Browser Agent 搞定 UI 测试)</td>\n<td align=\"left\">~$20 / 月</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>高度定制化 / 极客玩家</strong></td>\n<td align=\"left\"><strong>OpenClaw</strong> (本地部署) + <strong>Kimi K2.5 API</strong></td>\n<td align=\"left\">按量计费 (极低)</td>\n</tr>\n<tr>\n<td align=\"left\"><strong>土豪 / 重度 GitHub 依赖</strong></td>\n<td align=\"left\"><strong>Codex App Pro</strong> (云端沙盒极速编译)</td>\n<td align=\"left\">$200 / 月</td>\n</tr>\n</tbody></table>\n<blockquote>\n<p>👨💻 <strong>最终建议</strong>:让 AI 去写 boilerplate (样板代码),把你的精力留给真正的<strong>系统架构</strong>和<strong>业务逻辑思考</strong>。未来的程序员,本质上都是 Agent 调度员。</p>\n</blockquote>\n<hr>\n<p><strong>相关推荐</strong></p>\n<ul>\n<li><a href=\"/\">2026 全球主流 AI 厂商百科全书</a> - 了解工具背后的底层大模型</li>\n<li><a href=\"/\">如何搭建并调教你的 OpenClaw</a> - 开源 Agent 部署实战</li>\n</ul>\n","categories":["知识库"],"tags":["技术","AI","效率工具","极客"]},{"title":"Arch Linux 试毒:初探邪教的诱惑","url":"/2026/02/25/arch-linux-part1/","content":"<p><strong>“Arch Linux 是邪教,千万别碰!”</strong></p>\n<p>这句在技术圈流传甚广的忠告,今天终于被我抛到了脑后。看着 Windows 11 日益臃肿的身躯、层出不穷的弹窗警告,还有在工地画图时突然给我来个蓝屏重启的绝望,我决定:是时候找点刺激了。</p>\n<p>今天(2月25日),我正式开始了 Arch Linux 的“试毒”之旅。</p>\n<h2 id=\"为什么是-Arch?\"><a href=\"#为什么是-Arch?\" class=\"headerlink\" title=\"为什么是 Arch?\"></a>为什么是 Arch?</h2><p>其实我也考虑过 Ubuntu 或者 Manjaro,但骨子里那种“要想懂,就得从零开始手搓”的工程师强迫症犯了。Arch 的哲学——KISS (Keep It Simple, Stupid) 简直太吸引人了。你需要什么,就装什么;系统里没有一行代码是多余的。</p>\n<p>这不就像我们在工地上打灰一样吗?一切基础都要亲自夯实。</p>\n<h3 id=\"第一次安装:被黑框框支配的恐惧\"><a href=\"#第一次安装:被黑框框支配的恐惧\" class=\"headerlink\" title=\"第一次安装:被黑框框支配的恐惧\"></a>第一次安装:被黑框框支配的恐惧</h3><p>没有图形化安装界面?纯命令行?<br>讲真,看着屏幕上闪烁的光标,我有一瞬间怀疑自己是不是自虐。</p>\n<p>跟着 Arch Wiki 一步步:</p>\n<ol>\n<li><strong>联网</strong> (<code>iwctl</code>) - 这一步就卡了我半小时,因为宿舍网卡的驱动有点奇葩,最后我直接换数据了。</li>\n<li><strong>分区与格式化</strong> (<code>fdisk</code>, <code>mkfs</code>) - 小心翼翼,生怕把用来吃饭的 Windows 数据盘给格了,但是还好之前预留好了空间,直接放在最后一个分区美滋滋。</li>\n<li><strong>挂载与基础包安装</strong> (<code>pacstrap</code>) - 这一步跑起来的时候,看着那些包一个接一个飞过,心里竟然有点莫名的爽快?</li>\n</ol>\n<h3 id=\"翻车记录(第一季)\"><a href=\"#翻车记录(第一季)\" class=\"headerlink\" title=\"翻车记录(第一季)\"></a>翻车记录(第一季)</h3><p>就在我以为一切顺利,执行完 <code>arch-chroot</code> 准备收尾时,引导程序 <code>grub</code> 装崩了……但谢天谢地,实际上grub没崩,只是archlinux的grub无法被华硕的主板blos识别为引导,只要手动添加引导区路径就行了。</p>\n<p><img src=\"/img/%E6%A1%8C%E9%9D%A2%E5%BC%95%E5%AF%BC%E7%BE%8E%E5%8C%96.jpg\" alt=\"修复引导并美化大成功\"></p>\n<p>孩子们,终于进去的,呃,kde怎么看起来像某银河麒麟。</p>\n<p><img src=\"/img/%E7%99%BB%E5%BD%95%E7%95%8C%E9%9D%A2%E7%BE%8E%E5%8C%96.jpg\" alt=\"登录界面预览\"></p>\n<blockquote>\n<p>📌 <strong>今日感悟</strong>:Arch 就像一个盲盒,你永远不知道下一个命令敲下去是惊喜还是崩盘。但这种掌控一切(或者被一切掌控)的感觉,属实有点上头。</p>\n</blockquote>\n","categories":["技术随笔"],"tags":["Linux","折腾","Arch"]},{"title":"Arch Linux 日常:从“折腾”到“生产力”的进化之旅","url":"/2026/03/09/arch-linux-part3/","content":"<p>直到今天(3月9号),整整一周的高强度使用和不断调教,我终于敢说:Arch 不仅能活下去,而且比想象中更适合我的双重身份——开发者与工地施工员。</p>\n<h2 id=\"这周我都折腾了什么?\"><a href=\"#这周我都折腾了什么?\" class=\"headerlink\" title=\"这周我都折腾了什么?\"></a>这周我都折腾了什么?</h2><ol>\n<li><strong>环境与字体配置</strong>:<br>解决了最初中文字体发虚和缺失的问题,现在我的终端和浏览器里,等距字体和各类 Nerd Fonts 混杂得极为和谐,阅读代码简直是享受。<br>孩子们,不会QT和没用过环境变量的不要用这玩意。</li>\n<li><strong>包管理 (<code>pacman</code> & <code>yay</code>) 的终极快感</strong>:<br>受够了去各种官网下载 <code>.exe</code>,然后提防捆绑安装的日子。在 Arch 里,一句 <code>yay -S 软件名</code>,几秒钟后软件就安静地待在启动器里了。无论是微信、Node.js 还是复杂的开发库,全都在掌控之中。</li>\n<li><strong>工作流重建</strong>:<br>在工地需要处理的基础办公任务也找到了替代品。WPS 的 Linux 版出奇的好用;而绘图、修图等需求,也能在开源社区找到轻量又无广告的替代软件。</li>\n<li><strong>系统维护:滚动的恐惧与刺激</strong>:<br>大家都说 Arch 是“滚挂”代名词。这周我确实遇到了一次因为特定包依赖冲突导致的无法启动 XWayland 的小问题。但是看报错日志、去论坛查疑、最终通过降级包修复成功的过程,让我学到了比用几年 Windows 还多的底层知识。<br>实际上,现在arch已经很难滚挂了。</li>\n</ol>\n<h2 id=\"给想跳坑朋友们的建议\"><a href=\"#给想跳坑朋友们的建议\" class=\"headerlink\" title=\"给想跳坑朋友们的建议\"></a>给想跳坑朋友们的建议</h2><p>如果只是一时兴起,或者每天离不开大型网游、专业级 Adobe 全家桶,那请留在 Windows。<br>但如果你有以下症状:</p>\n<ul>\n<li><strong>重度代码强迫症</strong>:见不得后台跑着莫名其妙的进程。</li>\n<li><strong>极简主义</strong>:希望系统里除了你需要的,什么都没有。</li>\n<li><strong>热爱折腾</strong>:喜欢亲手把一块砖一块砖砌成摩天大楼的感觉(就像我在工地打灰)。</li>\n<li>懂环境配置:没有玩过linux最好别碰这玩意,不然容易找不着北。你要有ssh命令行运维能力。</li>\n</ul>\n<p>那 Arch 绝对是你最终的归宿。</p>\n<p>试毒完成。目前看来,除了偶尔遇到点小麻烦需要自己阅读文档外,它已经完美地成为了我新的生产力平台。后续我还会在这里记录一些配置文件和踩坑记录,方便大家(或者以后的我)参考。</p>\n<p><strong>生命不息,折腾不止!</strong></p>\n","categories":["技术随笔"],"tags":["Linux","折腾","Arch"]},{"title":"孩子们,我不做 Windows 人啦!","url":"/2026/03/02/arch-linux-part2/","content":"<blockquote>\n<p>“Are you sure you want to format /dev/nvme0n1p3?”<br>“Yes.”</p>\n</blockquote>\n<p>就在 3 月 2 号的这个夜晚,我正式把装满了各种恶心管家、弹窗广告和强推组件的 Windows 分区,干!掉!了!</p>\n<p>才怪,孩子们,grub双引导和windows原生的dx12还是不错的,但是在此之前,我得把环境和生态全部搬过来。</p>\n<p><strong>孩子们,我不做 Windows 人啦!(Jojo 脸.jpg)</strong></p>\n<h2 id=\"桌面与美化:从简陋黑框到酷炫极客\"><a href=\"#桌面与美化:从简陋黑框到酷炫极客\" class=\"headerlink\" title=\"桌面与美化:从简陋黑框到酷炫极客\"></a>桌面与美化:从简陋黑框到酷炫极客</h2><p>Arch 的安装这回轻车熟路了(感谢 <code>archinstall</code> 脚本的辅助,终于不用一行行敲命令了)。<br>装完系统才是真正折腾的开始。</p>\n<ul>\n<li>**窗口管理器 (WM)**:没有选择臃肿的 KDE 或者 GNOME,我头铁地选了 <code>Hyprland</code>。基于 Wayland 的平铺式窗口管理器。刚进去的时候一片漆黑,但配置好动画和快捷键后,那种丝滑和高效,真的是用了就回不去。</li>\n<li>**终端 (Terminal)**:换上了 <code>Alacritty</code> + <code>Tmux</code>。</li>\n<li><strong>状态栏</strong>:自己从头配了 <code>Waybar</code>。</li>\n</ul>\n<p>目前的极简桌面大概长这样:</p>\n<p><img src=\"/img/%E6%A1%8C%E9%9D%A2%E7%BE%8E%E5%8C%96.png\" alt=\"桌面效果\"></p>\n<p>现在的屏幕:一块透明模糊终端占据左边,右边跑着系统监视器,按下 <code>Super + Enter</code> 瞬间新开一个格子。敲击键盘的声音在深夜显得格外清脆。</p>\n<p><img src=\"/img/%E6%B5%8F%E8%A7%88%E5%99%A8%E5%92%8C%E7%AA%97%E5%8F%A3%E6%95%88%E6%9E%9C.png\" alt=\"浏览器与窗口渲染效果\"></p>\n<h2 id=\"工地人的倔强:软件能替吗?\"><a href=\"#工地人的倔强:软件能替吗?\" class=\"headerlink\" title=\"工地人的倔强:软件能替吗?\"></a>工地人的倔强:软件能替吗?</h2><p>最大的顾虑其实是生产力软件。<br>作为工地施工员,看图、发报表、偶尔码字是刚需:</p>\n<ol>\n<li><strong>看图/ CAD</strong>:发现了好几款开源的看图软件,轻量又快速,虽然没法做深度编辑,但也足够应付。</li>\n<li><strong>沟通</strong>:微信和 QQ 直接用debtab一把梭,我从来没有那么感谢过国产信创提供的软件环境。</li>\n<li><strong>开发</strong>:不用说,Linux 就是代码的最佳归宿。</li>\n</ol>\n<p>今晚配置到凌晨两点,看着终于跑起来的完整桌面系统,有一种看着自己亲手浇筑的混凝土结构封顶的成就感。<br>明天起,迎接全新的生产力环境!</p>\n","categories":["技术随笔"],"tags":["Linux","折腾","Arch"]},{"title":"Vue 3 启航","url":"/2025/11/15/vue-learning-1/","content":"<h1 id=\"梦开始的地方\"><a href=\"#梦开始的地方\" class=\"headerlink\" title=\"梦开始的地方\"></a>梦开始的地方</h1><p>记得刚接触前端的时候,大家还在用 jQuery 一把梭。那时候的代码充满了 <code>$</code> 符号,回调地狱更是家常便饭,三件套东一块西一块是常态。后来 React 和 Vue 横空出世,带给了我们全新的组件化开发体验。而今天,我正式决定投入 Vue 3 的怀抱。</p>\n<h2 id=\"为什么选择-Vue-3?\"><a href=\"#为什么选择-Vue-3?\" class=\"headerlink\" title=\"为什么选择 Vue 3?\"></a>为什么选择 Vue 3?</h2><p>有人说 React 更灵活,有人说 Angular 更规范。但在我看来,Vue 3 找到了优雅与性能的完美平衡点。</p>\n<ol>\n<li><strong>性能的质变</strong>:Vue 3 重写了响应式系统,利用 ES6 的 Proxy 取代了 <code>Object.defineProperty</code>。这意味着什么?意味着我们再也不用担心数组下标修改监听不到的问题了!而且,初始化的速度快得惊人。</li>\n<li><strong>Composition API</strong>:这绝对是 Vue 3 最大的杀手锏。在 Options API 时代,一个功能的逻辑往往分散在 <code>data</code>、<code>methods</code>、<code>computed</code> 里,维护起来像是在玩“找你妹”。而现在,我们可以像这就写原生 JS 一样,把相关逻辑聚合在一起。这简直是代码组织的神器!</li>\n<li><strong>TypeScript 支持</strong>:Vue 2 对 TS 的支持简直是灾难,而 Vue 3 是用 TS 重写的。这意味着我们在写 Vue 的时候,终于可以享受完整的类型推断了。再见,<code>any</code> scirpt!</li>\n</ol>\n<h2 id=\"我的第一个-Vue-3-Demo\"><a href=\"#我的第一个-Vue-3-Demo\" class=\"headerlink\" title=\"我的第一个 Vue 3 Demo\"></a>我的第一个 Vue 3 Demo</h2><figure class=\"highlight javascript\"><table><tr><td class=\"code\"><pre><span class=\"line\"><span class=\"keyword\">import</span> { ref, onMounted } <span class=\"keyword\">from</span> <span class=\"string\">'vue'</span></span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"keyword\">export</span> <span class=\"keyword\">default</span> {</span><br><span class=\"line\"> <span class=\"title function_\">setup</span>(<span class=\"params\"></span>) {</span><br><span class=\"line\"> <span class=\"keyword\">const</span> count = <span class=\"title function_\">ref</span>(<span class=\"number\">0</span>)</span><br><span class=\"line\"> <span class=\"keyword\">function</span> <span class=\"title function_\">increment</span>(<span class=\"params\"></span>) {</span><br><span class=\"line\"> count.<span class=\"property\">value</span>++</span><br><span class=\"line\"> }</span><br><span class=\"line\"> </span><br><span class=\"line\"> <span class=\"title function_\">onMounted</span>(<span class=\"function\">() =></span> {</span><br><span class=\"line\"> <span class=\"variable language_\">console</span>.<span class=\"title function_\">log</span>(<span class=\"string\">'组件挂载完成!'</span>)</span><br><span class=\"line\"> })</span><br><span class=\"line\"></span><br><span class=\"line\"> <span class=\"keyword\">return</span> { count, increment }</span><br><span class=\"line\"> }</span><br><span class=\"line\">}</span><br></pre></td></tr></table></figure>\n\n<p>看着这简洁的代码,我仿佛看到了光明的未来。没有了 <code>this</code> 的困扰,一切都变得那么直观。</p>\n<p><img src=\"/img/006.png\" alt=\"激动\"></p>\n","categories":["Vue学习之路"],"tags":["Vue","前端","Vue3","学习"]},{"title":"Vite:快!太快了!由于速度太快我跟不上了","url":"/2026/01/10/vue-learning-10/","content":"<h1 id=\"Vite:这也太快了吧…-还有报错\"><a href=\"#Vite:这也太快了吧…-还有报错\" class=\"headerlink\" title=\"Vite:这也太快了吧… 还有报错\"></a>Vite:这也太快了吧… 还有报错</h1><p>Vite 宣称是下一代前端构建工具。启动确实快,毫秒级。</p>\n<h2 id=\"开发爽,打包火葬场\"><a href=\"#开发爽,打包火葬场\" class=\"headerlink\" title=\"开发爽,打包火葬场\"></a>开发爽,打包火葬场</h2><p>开发环境用的是 ES Modules,不需要打包,所以快。但是生产环境还是用的 Rollup 打包。<br>这就导致了一个极其恶心的问题:<strong>开发环境跑得好好的,一打包上线就报错!</strong></p>\n<p>有些依赖包不是 ESM 格式,Vite 开发时会预构建解决,但在生产打包时,Rollup 的配置如果没有把 commonjs 转好,直接崩。我曾经为了一个老旧的加密库,折腾了整整两天 Vite 配置。<code>optimizeDeps</code>、<code>rollupOptions</code>、<code>commonjsOptions</code>… 每一个配置项都像是在嘲笑我的无知。</p>\n<h2 id=\"心态崩了\"><a href=\"#心态崩了\" class=\"headerlink\" title=\"心态崩了\"></a>心态崩了</h2><p>毁灭吧,赶紧的。累了。</p>\n<p>我们先来聊聊 Vite 的核心概念。在官方文档中,这一部分被描述得非常晦涩难懂。我花了整整三天时间查阅源码,翻遍了 GitHub 上的 Issues,才勉强理解了其中的奥妙。简单来说,它就像是一个黑盒子,你输入 A,它输出 B,但中间发生了什么,只有上帝和尤雨溪知道。</p>\n<p>代码示例方面,我尝试写了一个 Demo,结果控制台满屏飘红。这哪里是写代码,简直是在扫雷。每一个变量的定义都充满了不确定性,每一个函数的调用都像是在赌博。</p>\n<p><img src=\"/img/029.jpg\" alt=\"Vite\"></p>\n","categories":["Vue学习之路"],"tags":["Vue","前端","Vite","工具"]},{"title":"前端性能优化:只要我跑得够快,Bug 就追不上我","url":"/2026/01/15/vue-learning-11/","content":"<h1 id=\"性能优化:无底洞\"><a href=\"#性能优化:无底洞\" class=\"headerlink\" title=\"性能优化:无底洞\"></a>性能优化:无底洞</h1><p>说页面加载太慢,要优化。好,我优化。</p>\n<p>你知道的,一个three.js地图,配上一大堆数据,能加载的快就有鬼了。</p>\n<h2 id=\"漫漫长路\"><a href=\"#漫漫长路\" class=\"headerlink\" title=\"漫漫长路\"></a>漫漫长路</h2><ol>\n<li><strong>代码分割(Code Splitting)</strong>:路由懒加载,组件异步加载。好,首屏快了一点。</li>\n<li><strong>图片压缩</strong>:上了 WebP,上了 CDN。</li>\n<li><strong>减少重排重绘</strong>:小心翼翼地操作 DOM。</li>\n<li><strong>Tree Shaking</strong>:检查打包产物,去掉了无用的 lodash 引入。</li>\n</ol>\n<h2 id=\"结果呢?\"><a href=\"#结果呢?\" class=\"headerlink\" title=\"结果呢?\"></a>结果呢?</h2><p>乐了,更卡了。</p>\n<h2 id=\"心态崩了\"><a href=\"#心态崩了\" class=\"headerlink\" title=\"心态崩了\"></a>心态崩了</h2><p>毁灭吧,赶紧的。累了。</p>\n<h2 id=\"为什么这么难?\"><a href=\"#为什么这么难?\" class=\"headerlink\" title=\"为什么这么难?\"></a>为什么这么难?</h2><p>前端不就是画画界面调调接口吗?为什么要搞这么复杂?Webpack 还没整明白,Vite 又来了;Vue 3 又变了。学不动了,真的学不动了。</p>\n<p><img src=\"/img/006.png\" alt=\"性能\"></p>\n","categories":["Vue学习之路"],"tags":["技术","Vue","前端","性能"]},{"title":"深坑记录:响应式丢失的那一夜","url":"/2026/01/21/vue-learning-12/","content":"<h1 id=\"那个让我通宵的-Bug\"><a href=\"#那个让我通宵的-Bug\" class=\"headerlink\" title=\"那个让我通宵的 Bug\"></a>那个让我通宵的 Bug</h1><p>那是周五的晚上,本该是快乐的周末开始。但是测试报了一个致命 Bug:用户点完保存,列表数据没有更新,必须刷新页面才行。</p>\n<h2 id=\"排查过程\"><a href=\"#排查过程\" class=\"headerlink\" title=\"排查过程\"></a>排查过程</h2><ol>\n<li><strong>查接口</strong>:后端接口返回的数据是新的,没问题。</li>\n<li><strong>查 Vue DevTools</strong>:发现 store 里的数据确实可以更新,但是组件里的数据没变。</li>\n<li><strong>定位代码</strong>:</li>\n</ol>\n<figure class=\"highlight javascript\"><table><tr><td class=\"code\"><pre><span class=\"line\"><span class=\"comment\">// store.js</span></span><br><span class=\"line\"><span class=\"attr\">state</span>: <span class=\"function\">() =></span> ({ <span class=\"attr\">list</span>: [] })</span><br><span class=\"line\"></span><br><span class=\"line\"><span class=\"comment\">// component.vue</span></span><br><span class=\"line\"><span class=\"keyword\">const</span> { list } = userStore</span><br></pre></td></tr></table></figure>\n\n<p>就是这行解构!在 Options API 里习惯了 <code>this.list</code>,在 Setup 里直接解构 store,导致 <code>list</code> 变成了一个普通的数组,失去了响应性连接。</p>\n<h2 id=\"心态崩了\"><a href=\"#心态崩了\" class=\"headerlink\" title=\"心态崩了\"></a>心态崩了</h2><p>毁灭吧,赶紧的。累了。</p>\n<p>我们先来聊聊 Vue 响应式的核心概念。在官方文档中,这一部分被描述得非常晦涩难懂。我花了整整三天时间查阅源码,翻遍了 GitHub 上的 Issues,才勉强理解了其中的奥妙。简单来说,它就像是一个黑盒子,你输入 A,它输出 B,但中间发生了什么,只有上帝和尤雨溪知道。</p>\n<h2 id=\"为什么这么难?\"><a href=\"#为什么这么难?\" class=\"headerlink\" title=\"为什么这么难?\"></a>为什么这么难?</h2><p>前端不就是画画界面调调接口吗?为什么要搞这么复杂?Webpack 还没整明白,Vite 又来了;Vue 2 刚熟练,Vue 3 又变了。学不动了,真的学不动了。</p>\n<p><img src=\"/img/008.png\" alt=\"踩坑\"></p>\n","categories":["Vue学习之路"],"tags":["Vue","前端","Vue3","踩坑"]},{"title":"逐渐暴躁:为什么前端框架更新这么快?!","url":"/2026/01/22/vue-learning-13/","content":"<h1 id=\"永远学不完\"><a href=\"#永远学不完\" class=\"headerlink\" title=\"永远学不完\"></a>永远学不完</h1><p>今天看到尤雨溪又发了新推特,Vue 3.5 即将发布,又有一堆新特性。Vapor Mode?无虚拟 DOM?</p>\n<p>求求了,别更新了。我 Vue 3.0 的文档还没背熟呢。</p>\n<h2 id=\"疲惫感\"><a href=\"#疲惫感\" class=\"headerlink\" title=\"疲惫感\"></a>疲惫感</h2><p>每次打开 GitHub Trending,都是一堆新轮子。React Server Components, SolidJS, Svelte, Qwik… 每一个都号称颠覆前端。我累了,真的累了。</p>\n<p>作为一名追求极致体验的开发者,我深知持续学习的重要性。但是… 真的需要学这么多吗?</p>\n<h2 id=\"AI-才是未来\"><a href=\"#AI-才是未来\" class=\"headerlink\" title=\"AI 才是未来\"></a>AI 才是未来</h2><p>不装了,我摊牌了。手写代码是上个世纪的事情了。今天我试了一下 Vibe Code,只需一句话,它就生成了我折腾了三天都没写出来的功能。那一刻,我释然了。我为什么要跟机器比速度?我为什么要跟编译器较劲?</p>\n<h2 id=\"拥抱变化\"><a href=\"#拥抱变化\" class=\"headerlink\" title=\"拥抱变化\"></a>拥抱变化</h2><p>回想起刚开始接触 Vue 的时候,那时候的快乐是纯粹的。写一个 <code>{{ message }}</code> 就能看到页面变化,那种成就感无与伦比。而现在,我们要处理复杂的依赖关系、难以捉摸的类型定义、层出不穷的构建工具配置。难道这就是成长的代价吗?</p>\n<p>真香!</p>\n<p><img src=\"/img/016.jpg\" alt=\"吐槽\"></p>\n","categories":["Vue学习之路"],"tags":["Vue","前端","吐槽","心情"]},{"title":"我累了:试图理解源码,结果被源码理解了","url":"/2026/01/23/vue-learning-14/","content":"<h1 id=\"源码阅读:从入门到放弃\"><a href=\"#源码阅读:从入门到放弃\" class=\"headerlink\" title=\"源码阅读:从入门到放弃\"></a>源码阅读:从入门到放弃</h1><p>为了提升自己,我决定阅读 Vue 3 源码。打开 <code>core</code> 仓库,看到那几万行 TS 代码,我陷入了沉思。</p>\n<h2 id=\"晦涩的渲染器\"><a href=\"#晦涩的渲染器\" class=\"headerlink\" title=\"晦涩的渲染器\"></a>晦涩的渲染器</h2><p><code>renderer.ts</code>,几千行的 switch case,各种位运算标记(PatchFlags)。我看了一行,脑子就过载了。这就是大神的思维世界吗?</p>\n<p>我意识到,我可能这辈子都达不到这个水平了。我只是一个 API Consumer,一个熟练的搬砖工。</p>\n<h2 id=\"转折点\"><a href=\"#转折点\" class=\"headerlink\" title=\"转折点\"></a>转折点</h2><p>就在我绝望的时候,我接触到了现在的 AI 编程工具。</p>\n<h2 id=\"AI-才是未来\"><a href=\"#AI-才是未来\" class=\"headerlink\" title=\"AI 才是未来\"></a>AI 才是未来</h2><p>不装了,我摊牌了。手写代码是上个世纪的事情了。</p>\n<h2 id=\"AI-降维打击\"><a href=\"#AI-降维打击\" class=\"headerlink\" title=\"AI 降维打击\"></a>AI 降维打击</h2><p>今天我试了一下 Vibe Code,只需一句话,它就生成了我折腾了三天都没写出来的功能。那一刻,我释然了。我为什么要跟机器比速度?我为什么要跟编译器较劲?</p>\n<p>从今天起,我不再是前端切图仔,我是 AI Prompt 工程师。Vue 3?真不熟。Pinia?没听过。我只知道 “Generate a login page with Vue 3 and Tailwind”。</p>\n<p>真香!</p>\n<p><img src=\"/img/040.jpg\" alt=\"源码\"></p>\n","categories":["Vue学习之路"],"tags":["Vue","前端","源码","放弃"]},{"title":"彻底放弃:拥抱 Vibe Code,AI 才是亲爹","url":"/2026/01/24/vue-learning-15/","content":"<h1 id=\"最终章:拥抱未来\"><a href=\"#最终章:拥抱未来\" class=\"headerlink\" title=\"最终章:拥抱未来\"></a>最终章:拥抱未来</h1><p>这是我《Vue 学习之路》系列的最后一篇文章。因为,这路我不走了。</p>\n<h2 id=\"为什么放弃?\"><a href=\"#为什么放弃?\" class=\"headerlink\" title=\"为什么放弃?\"></a>为什么放弃?</h2><ol>\n<li><strong>效率差距</strong>:我写个增删改查页面,要 4 小时,调 CSS 还要 1 小时。AI 写,只要 30 秒。</li>\n<li><strong>知识焦虑</strong>:前端技术栈爆炸,学不完。但 AI 已经学完了所有文档。</li>\n<li><strong>幸福感</strong>:写代码是为了创造产品,不是为了修 Bug。</li>\n</ol>\n<h2 id=\"Vibe-Code-体验\"><a href=\"#Vibe-Code-体验\" class=\"headerlink\" title=\"Vibe Code 体验\"></a>Vibe Code 体验</h2><p>打开 Vibe Code,输入:“做一个博客首页,要有毛玻璃效果,基于 Hexo Butterfly 主题风格”。<br>然后,啪!代码出来了。没有语法错误,没有类型报错。</p>\n<p>那一刻,我感觉自己之前的努力就像个笑话。</p>\n<h2 id=\"拥抱变化\"><a href=\"#拥抱变化\" class=\"headerlink\" title=\"拥抱变化\"></a>拥抱变化</h2><p>从今天起,我不再是前端切图仔,我是 AI Prompt 工程师。Vue 3?真不熟。Pinia?没听过。我只知道 “Generate a login page with Vue 3 and Tailwind”。</p>\n<p>在这个快速发展的前端时代,技术的更新迭代速度简直让人窒息。每一次框架的更新,不仅带来了新的特性,也带来了新的焦虑。作为一名追求极致体验的开发者,我深知持续学习的重要性。但是… 真的需要学这么多吗?</p>\n<p>再见了,所有的未定义变量,再见了所有的代码不规范,<code>node_modules</code>。你好,DeepSeek。</p>\n<p>真香!</p>\n<p><img src=\"/img/site_bg_v2.jpg\" alt=\"真香\"></p>\n","categories":["Vue学习之路"],"tags":["AI","Vue","前端","Vibe Code"]},{"title":"Ref vs Reactive:响应式的哲学思考 (头秃篇)","url":"/2025/11/30/vue-learning-2/","content":"<h1 id=\"响应式的哲学\"><a href=\"#响应式的哲学\" class=\"headerlink\" title=\"响应式的哲学\"></a>响应式的哲学</h1><p>在深入学习 Vue 3 的过程中,不管是新手还是老鸟,都会遇到一个经典问题:<code>ref</code> 和 <code>reactive</code> 到底用哪个?</p>\n<h2 id=\"官方的定义\"><a href=\"#官方的定义\" class=\"headerlink\" title=\"官方的定义\"></a>官方的定义</h2><ul>\n<li><code>ref</code>:接受一个内部值并返回一个响应式且可变的 ref 对象。ref 对象仅有一个 <code>.value</code> property,指向该内部值。</li>\n<li><code>reactive</code>:返回对象的响应式副本。</li>\n</ul>\n<p>看起来很简单,对吧?<code>ref</code> 处理基本类型,<code>reactive</code> 处理对象。但是在实际开发中,情况远比这复杂。</p>\n<h2 id=\"踩坑实录\"><a href=\"#踩坑实录\" class=\"headerlink\" title=\"踩坑实录\"></a>踩坑实录</h2><p>我曾经试图用 <code>reactive</code> 去定义一个数组,结果发现直接重新赋值会丢失响应性!</p>\n<figure class=\"highlight javascript\"><table><tr><td class=\"code\"><pre><span class=\"line\"><span class=\"keyword\">let</span> list = <span class=\"title function_\">reactive</span>([])</span><br><span class=\"line\"><span class=\"comment\">// ... 异步获取数据后</span></span><br><span class=\"line\">list = newData <span class=\"comment\">// ❌ 响应性丢失!界面不更新!</span></span><br></pre></td></tr></table></figure>\n\n<p>为什么?因为 <code>reactive</code> 返回的是一个 Proxy 对象,直接赋值 <code>list = newData</code> 只是修改了变量 <code>list</code> 的引用,并没有修改原来的 Proxy 对象。</p>\n<p>正确做法是用 <code>ref</code>,或者用 <code>list.push(...newData)</code>。但是 <code>ref</code> 每次都要写 <code>.value</code>,真的好烦啊!在模板里倒是会自动解包,但在 JS 逻辑里,少写一个 <code>.value</code> 就能让你调试半天。</p>\n<h2 id=\"深入思考\"><a href=\"#深入思考\" class=\"headerlink\" title=\"深入思考\"></a>深入思考</h2><p><code>ref</code> 更像是“指针”,明确地告诉我们这里有一个需要被追踪的值;而 <code>reactive</code> 则更贴近原生对象的直觉。</p>\n<p>简单来说,它就像是一个黑盒子,你输入 A,它输出 B,但中间发生了什么,或者是有没有响应到,你只能看输出和输入的情况。</p>\n<p>代码示例方面,我尝试写了一个 Demo,结果控制台满屏飘红。这哪里是写代码,简直是在扫雷。每一个变量的定义都充满了不确定性,每一个函数的调用都像是在赌博。</p>\n<p>也许,与其纠结用哪个,不如统一用 <code>ref</code> 一把梭?毕竟,显示地使用 <code>.value</code> 虽然繁琐,但至少心安。</p>\n<p><img src=\"/img/008.png\" alt=\"思考\"></p>\n","categories":["Vue学习之路"],"tags":["技术","Vue","前端","Vue3"]},{"title":"路由守卫:你是谁?你去哪?有通行证吗?","url":"/2025/12/05/vue-learning-3/","content":"<h1 id=\"前端的保安:Vue-Router\"><a href=\"#前端的保安:Vue-Router\" class=\"headerlink\" title=\"前端的保安:Vue Router\"></a>前端的保安:Vue Router</h1><p>做单页应用(SPA),路由管理是绕不开的一环。而“路由守卫”(Navigation Guards)则是其中最精彩(也最容易出 Bug)的部分。</p>\n<h2 id=\"全局前置守卫:beforeEach\"><a href=\"#全局前置守卫:beforeEach\" class=\"headerlink\" title=\"全局前置守卫:beforeEach\"></a>全局前置守卫:beforeEach</h2><p>这就好比小区门口的保安大爷,不管你是谁,进门先查证。</p>\n<figure class=\"highlight javascript\"><table><tr><td class=\"code\"><pre><span class=\"line\">router.<span class=\"title function_\">beforeEach</span>(<span class=\"function\">(<span class=\"params\">to, <span class=\"keyword\">from</span>, next</span>) =></span> {</span><br><span class=\"line\"> <span class=\"keyword\">if</span> (to.<span class=\"property\">name</span> !== <span class=\"string\">'Login'</span> && !isAuthenticated) {</span><br><span class=\"line\"> <span class=\"title function_\">next</span>({ <span class=\"attr\">name</span>: <span class=\"string\">'Login'</span> })</span><br><span class=\"line\"> } <span class=\"keyword\">else</span> {</span><br><span class=\"line\"> <span class=\"title function_\">next</span>()</span><br><span class=\"line\"> }</span><br><span class=\"line\">})</span><br></pre></td></tr></table></figure>\n\n<p>看起来逻辑天衣无缝?只要没登录,就踢回登录页。但是!如果你的逻辑写得稍微有一点漏洞,就会陷入<strong>无限循环</strong>。</p>\n<p>比如,你忘记判断 <code>to.name !== 'Login'</code>,那么用户被重定向到 Login 页,再次触发 beforeEach,再次重定向… 浏览器直接卡死,你也懵逼了。</p>\n<h2 id=\"组件内的守卫\"><a href=\"#组件内的守卫\" class=\"headerlink\" title=\"组件内的守卫\"></a>组件内的守卫</h2><p><code>beforeRouteEnter</code>、<code>beforeRouteUpdate</code>、<code>beforeRouteLeave</code>。这些钩子函数让我们可以精确控制组件级的路由行为。</p>\n<ul>\n<li><strong>beforeRouteEnter</strong>:在渲染该组件的对应路由被 confirm 前调用。注意!此时组件实例还没被创建,所以你不能用 <code>this</code>!这又是 Vue 新手的一大坑。</li>\n<li><strong>beforeRouteLeave</strong>:通常用来禁止用户在未保存修改前突然离开。</li>\n</ul>\n<h2 id=\"遇到的困难与思考\"><a href=\"#遇到的困难与思考\" class=\"headerlink\" title=\"遇到的困难与思考\"></a>遇到的困难与思考</h2><p>对于路由守卫,社区里有很多争论。有人说它是未来,有人说它是过度设计。因为实际上后端配置JWT的情况下,并不需要这玩意。我个人认为,你还是要遇到回传需求的,这玩意总是有用的,而且并不是所有的服务都有完整后端。</p>\n<p><img src=\"/img/016.jpg\" alt=\"保安\"></p>\n","categories":["Vue学习之路"],"tags":["Vue","前端","学习","Vue Router"]},{"title":"生命周期钩子:生老病死,Vue 组件的一生","url":"/2025/12/14/vue-learning-4/","content":"<h1 id=\"组件的一生\"><a href=\"#组件的一生\" class=\"headerlink\" title=\"组件的一生\"></a>组件的一生</h1><p>万物皆有灵,Vue 组件也不例外。它们从被创建(Creation),到挂载(Mounting),到更新(Updating),最后销毁(Unmounting),走完了一生。而我们开发者,就是那个掌握生杀大权的神。</p>\n<h2 id=\"Vue-3-的变化\"><a href=\"#Vue-3-的变化\" class=\"headerlink\" title=\"Vue 3 的变化\"></a>Vue 3 的变化</h2><p>在 Vue 2 中,我们熟悉的是 <code>created</code>, <code>mounted</code>, <code>destroyed</code>。在 Vue 3 的 Composition API 中,这些变成了 <code>onMounted</code>, <code>onUnmounted</code> 等等。</p>\n<p>最让我困惑的是 <code>setup()</code>。它在 <code>beforeCreate</code> 和 <code>created</code> 之前执行。这意味着在 <code>setup</code> 里面,我们不需要写这一类的钩子了,直接写逻辑就行。</p>\n<h2 id=\"实际应用中的坑\"><a href=\"#实际应用中的坑\" class=\"headerlink\" title=\"实际应用中的坑\"></a>实际应用中的坑</h2><p>我曾经遇到过一个 Bug,在 <code>onMounted</code> 里面去获取 DOM 元素的高宽。理论上这时候 DOM 已经渲染好了,对吧?</p>\n<p>错!如果你的组件里面有 <code>v-if</code> 或者异步组件,<code>onMounted</code> 触发的时候,子组件可能还没渲染完!这时候拿到的高度是 0。解决办法是用 <code>nextTick</code>,或者检查你的组件结构。</p>\n<h2 id=\"为什么会这样?\"><a href=\"#为什么会这样?\" class=\"headerlink\" title=\"为什么会这样?\"></a>为什么会这样?</h2><p>回想起刚开始接触 Vue 的时候,那时候的快乐是纯粹的。写一个 <code>{{ message }}</code> 就能看到页面变化,那种成就感无与伦比。而现在,我们要处理复杂的依赖关系、难以捉摸的类型定义、层出不穷的构建工具配置。难道这就是成长的代价吗?</p>\n<p>我们先来聊聊 Vue 生命周期的核心概念。在官方文档中,这一部分被描述得非常晦涩难懂。我花了整整三天时间查阅源码,翻遍了 GitHub 上的 Issues,才勉强理解了其中的奥妙。简单来说,它就像是一个黑盒子,你输入 A,它输出 B,但中间发生了什么,只有上帝和尤雨溪知道。</p>\n<p>代码示例方面,我尝试写了一个 Demo,结果控制台满屏飘红。这哪里是写代码,简直是在扫雷。每一个变量的定义都充满了不确定性,每一个函数的调用都像是在赌博。</p>\n<p><img src=\"/img/040.jpg\" alt=\"生老病死\"></p>\n","categories":["Vue学习之路"],"tags":["技术","Vue","前端","Vue3"]},{"title":"样式设计:CSS 也就是随便写写... (并没有)","url":"/2025/12/25/vue-learning-5/","content":"<h1 id=\"CSS-的痛与乐\"><a href=\"#CSS-的痛与乐\" class=\"headerlink\" title=\"CSS 的痛与乐\"></a>CSS 的痛与乐</h1><p>作为一个前端,最怕的不是写 JS 逻辑,而是调 CSS 样式。居中?对齐?适配?每一个词都能让猛男落泪。</p>\n<h2 id=\"Vue-中的-Scoped-CSS\"><a href=\"#Vue-中的-Scoped-CSS\" class=\"headerlink\" title=\"Vue 中的 Scoped CSS\"></a>Vue 中的 Scoped CSS</h2><p>Vue 提供了 <code><style scoped></code>,这简直是防止样式污染的神器。它通过给元素添加唯一的 data-v-xxx 属性,确保你的样式只在这个组件内生效。</p>\n<figure class=\"highlight css\"><table><tr><td class=\"code\"><pre><span class=\"line\"><span class=\"selector-class\">.example</span><span class=\"selector-attr\">[data-v-f3f3eg9]</span> {</span><br><span class=\"line\"> <span class=\"attribute\">color</span>: red;</span><br><span class=\"line\">}</span><br></pre></td></tr></table></figure>\n\n<p>但是!当你试图修改子组件的样式时(比如修改 Element Plus 的组件样式),<code>scoped</code> 就变成了拦路虎。这时候你就得用深度选择器 <code>:deep()</code>。</p>\n<figure class=\"highlight css\"><table><tr><td class=\"code\"><pre><span class=\"line\"><span class=\"selector-class\">.parent</span> :<span class=\"built_in\">deep</span>(.child) {</span><br><span class=\"line\"> <span class=\"comment\">/* 这样才能穿透过去 */</span></span><br><span class=\"line\">}</span><br></pre></td></tr></table></figure>\n\n<p>之前不知道这个,我傻傻地去写全局样式,结果污染了整个项目,被组长骂了一顿。</p>\n<h2 id=\"动态样式\"><a href=\"#动态样式\" class=\"headerlink\" title=\"动态样式\"></a>动态样式</h2><p>Vue 3 允许我们在 CSS 中绑定 JS 变量:</p>\n<figure class=\"highlight css\"><table><tr><td class=\"code\"><pre><span class=\"line\"><span class=\"selector-class\">.text</span> {</span><br><span class=\"line\"> <span class=\"attribute\">color</span>: <span class=\"built_in\">v-bind</span>(color)</span><br><span class=\"line\">}</span><br></pre></td></tr></table></figure>\n\n<p>太酷了!这才是现代化开发嘛!</p>\n<p>样式设计看似简单,实则深不可测。Flexbox, Grid, CSS Variables, Tailwind… 学不完,根本学不完。</p>\n<p><img src=\"/img/047.png\" alt=\"CSS\"></p>\n","categories":["Vue学习之路"],"tags":["Vue","前端","CSS","设计"]},{"title":"Pinia:Vuex 的继任者,好吃又好用","url":"/2025/12/30/vue-learning-6/","content":"<h1 id=\"菠萝(Pinia)真好吃\"><a href=\"#菠萝(Pinia)真好吃\" class=\"headerlink\" title=\"菠萝(Pinia)真好吃\"></a>菠萝(Pinia)真好吃</h1><p>Vuex 复杂的 mutation, action, getter 曾让人头大。Pinia 的出现,简直是清流。</p>\n<h2 id=\"为什么是-Pinia?\"><a href=\"#为什么是-Pinia?\" class=\"headerlink\" title=\"为什么是 Pinia?\"></a>为什么是 Pinia?</h2><ol>\n<li><strong>没有 Mutation</strong>:终于不用为了改个状态写那繁琐的模板代码了,直接在 Action 里改,或者直接改!</li>\n<li><strong>TypeScript 友好</strong>:完美的类型推断,不用像 Vuex 那样写一堆泛型接口。</li>\n<li><strong>极简 API</strong>:<code>defineStore</code> 一把梭。</li>\n</ol>\n<h2 id=\"逐渐掉光的头发\"><a href=\"#逐渐掉光的头发\" class=\"headerlink\" title=\"逐渐掉光的头发\"></a>逐渐掉光的头发</h2><p>随着学习的深入,我发现事情并不像我想象的那么简单。Pinia 这个知识点,简直是我的噩梦。</p>\n<p>文档里写得轻描淡写,实际用起来坑巨多。比如,我在 store 里解构 state,结果响应性丢了!</p>\n<figure class=\"highlight javascript\"><table><tr><td class=\"code\"><pre><span class=\"line\"><span class=\"keyword\">const</span> store = <span class=\"title function_\">useUserStore</span>()</span><br><span class=\"line\"><span class=\"keyword\">const</span> { name } = store <span class=\"comment\">// ❌ 响应性丢失</span></span><br></pre></td></tr></table></figure>\n\n<p>必须用 <code>storeToRefs(store)</code>。这种细节,一旦不知道,就是一下午的调试时间。</p>\n<h2 id=\"令人头秃的细节\"><a href=\"#令人头秃的细节\" class=\"headerlink\" title=\"令人头秃的细节\"></a>令人头秃的细节</h2><p>在这个快速发展的前端时代,技术的更新迭代速度简直让人窒息。每一次框架的更新,不仅带来了新的特性,也带来了新的焦虑。作为一名追求极致体验的开发者,我深知持续学习的重要性。但是,Pinia 的某些行为真的很迷。</p>\n<p>比如,它在服务端渲染(SSR)下的 hydration 问题,经常导致客户端和服务端数据不一致,你以为数据传过去了,结果是如传。我花了整整三天时间查阅源码,翻遍了 GitHub 上的 Issues,才勉强理解了其中的奥妙。简单来说,它就像是一个黑盒子,你输入 A,它输出 B,但中间发生了什么,只有上帝和尤雨溪知道。</p>\n<p><img src=\"/img/049.png\" alt=\"Pinia\"></p>\n","categories":["Vue学习之路"],"tags":["Vue","前端","Pinia","状态管理"]},{"title":"组件通信:Props 传值传到手抽筋","url":"/2025/12/31/vue-learning-7/","content":"<h1 id=\"Props-Emit-Provide-Inject…\"><a href=\"#Props-Emit-Provide-Inject…\" class=\"headerlink\" title=\"Props, Emit, Provide, Inject…\"></a>Props, Emit, Provide, Inject…</h1><p>Vue 的组件通信方式多达十几种。父子通信用 Props/Emit,跨层级用 Provide/Inject,兄弟组件用 EventBus(Vue 3 移除了,得自己手写或用mitt),全局状态用 Pinia。</p>\n<h2 id=\"传值的痛苦\"><a href=\"#传值的痛苦\" class=\"headerlink\" title=\"传值的痛苦\"></a>传值的痛苦</h2><p>当你有 5 层组件嵌套,最外层的组件想传个 ID 给最里面的组件。<br>Props Drilling(属性透传)简直是灾难。</p>\n<p>Parent -> Child -> GrandChild -> GreatGrandChild -> Target</p>\n<p>每一层都要声明 Props,写得我想吐。虽说可以用 <code>provide/inject</code>,但不仅失去了类型推断的便利(TS 还要额外定义 InjectionKey),而且数据流变得难以追踪。</p>\n<p><img src=\"/img/078.png\" alt=\"通信\"></p>\n","categories":["Vue学习之路"],"tags":["Vue","前端","Vue3","组件"]},{"title":"Composition API:逻辑复用的快乐与痛苦","url":"/2026/01/05/vue-learning-8/","content":"<h1 id=\"组合式-API:双刃剑\"><a href=\"#组合式-API:双刃剑\" class=\"headerlink\" title=\"组合式 API:双刃剑\"></a>组合式 API:双刃剑</h1><p>Composition API 是 Vue 3 的灵魂。它允许我们将逻辑通过 Hooks(Composables)的方式进行提取和复用。</p>\n<h2 id=\"理想很丰满\"><a href=\"#理想很丰满\" class=\"headerlink\" title=\"理想很丰满\"></a>理想很丰满</h2><p>我想象中的代码:</p>\n<figure class=\"highlight javascript\"><table><tr><td class=\"code\"><pre><span class=\"line\"><span class=\"keyword\">const</span> { user } = <span class=\"title function_\">useUser</span>()</span><br><span class=\"line\"><span class=\"keyword\">const</span> { articles } = <span class=\"title function_\">useArticles</span>()</span><br><span class=\"line\"><span class=\"keyword\">const</span> { loading } = <span class=\"title function_\">useLoading</span>()</span><br></pre></td></tr></table></figure>\n\n<p>清爽、干净、模块化。</p>\n<h2 id=\"现实很骨感\"><a href=\"#现实很骨感\" class=\"headerlink\" title=\"现实很骨感\"></a>现实很骨感</h2><p>实际写出来的代码:</p>\n<figure class=\"highlight javascript\"><table><tr><td class=\"code\"><pre><span class=\"line\"><span class=\"keyword\">const</span> { user, <span class=\"attr\">loading</span>: userLoading, <span class=\"attr\">error</span>: userError } = <span class=\"title function_\">useUser</span>()</span><br><span class=\"line\"><span class=\"keyword\">const</span> { articles, <span class=\"attr\">loading</span>: articleLoading, <span class=\"attr\">error</span>: articleError } = <span class=\"title function_\">useArticles</span>()</span><br><span class=\"line\"><span class=\"comment\">// 命名冲突!到处重命名!</span></span><br></pre></td></tr></table></figure>\n\n<p>而且,如果你把所有逻辑都堆在 <code>setup</code> 里,不加以拆分,它就会变成一个巨大的面条代码(Spaghetti Code),比 Options API 还要难以维护。因为 Options API 至少强制你分开了 data 和 methods。严格来说实际上只要你不在乎史山代码,你完全可以不在乎getter和setter,全放在utils里面,所有的state变量都塞在一个const里面。</p>\n<h2 id=\"令人头秃的细节\"><a href=\"#令人头秃的细节\" class=\"headerlink\" title=\"令人头秃的细节\"></a>令人头秃的细节</h2><p>文档里写得轻描淡写,实际用起来坑巨多。比如那个 Hook 的执行时机,如果在 Hook 里面用了 <code>onMounted</code>,它到底是在父组件挂载前还是后?如果 Hook 里有异步操作呢?我之前是写C++这种顺序执行语言的,被这玩意狠狠的摆了一道,同一个函数内所有的调用是同步执行的,除非你用promise进行强行顺序化。</p>\n<p><img src=\"/img/092.jpg\" alt=\"API\"></p>\n","categories":["Vue学习之路"],"tags":["Vue","前端","Vue3","API"]},{"title":"TypeScript:给代码穿上防弹衣 (虽然很重)","url":"/2026/01/07/vue-learning-9/","content":"<h1 id=\"TypeScript:心态崩了\"><a href=\"#TypeScript:心态崩了\" class=\"headerlink\" title=\"TypeScript:心态崩了\"></a>TypeScript:心态崩了</h1><p>毁灭吧,赶紧的。累了。</p>\n<h2 id=\"无尽的报错\"><a href=\"#无尽的报错\" class=\"headerlink\" title=\"无尽的报错\"></a>无尽的报错</h2><p>TypeScript 说是给代码穿上防弹衣,防止低级错误。但实际上,它更像是给我的手戴上了镣铐。</p>\n<p><code>Type 'string | null' is not assignable to type 'string'.</code><br><code>Property 'xyz' does not exist on type 'ABC'.</code></p>\n<p>我知道!我知道它是 null!我加了判断了!但 TS 就是不信!非要我写 <code>as string</code> 或者 <code>!</code>。</p>\n<p>尤其是在 Vue 组件的 Props 定义里,结合 <code>defineProps</code> 和泛型,写起来那叫一个酸爽。为了解决一个类型报错,我可能要写几十行的 interface 定义。这到底是写业务逻辑,还是在做类型体操?</p>\n<h2 id=\"为什么这么难?\"><a href=\"#为什么这么难?\" class=\"headerlink\" title=\"为什么这么难?\"></a>为什么这么难?</h2><p>${title} 让我彻底破防了。我在 Pinia 里配了半天状态,结果组件里死活拿不到。控制台的黄色警告和红色错误交织在一起,像是在嘲笑我的无能。</p>\n<p>在这个快速发展的前端时代,技术的更新迭代速度简直让人窒息。每一次框架的更新,不仅带来了新的特性,也带来了新的焦虑。作为一名追求极致体验的开发者,我深知持续学习的重要性。但是… 真的需要学这么多吗?</p>\n<p>前端不就是画画界面调调接口吗?为什么要搞这么复杂?Webpack 还没整明白,Vite 又来了;Vue 3 又变了。学不动了,真的学不动了。</p>\n<p><img src=\"/img/site_bg_v2.jpg\" alt=\"TS\"></p>\n","categories":["Vue学习之路"],"tags":["技术","Vue","前端","TypeScript"]}] |