[{"data":1,"prerenderedAt":73},["ShallowReactive",2],{"$f2LnOEJqXltvlwjWkfRNoH2RI11WHskT_OdIKvf5s--Q":3,"$fypIPsbf6VplHq4rTUo92XElz4R5SahNKh-gUQWW_HC4":59},{"items":4,"total":55,"page":56,"pageSize":57,"pageCount":58},[5,21,34,44],{"id":6,"slug":7,"title":8,"excerpt":9,"contentHtml":10,"coverImage":11,"status":12,"publishedAt":13,"updatedAt":13,"authorName":14,"categoryId":15,"tagIds":16,"seoTitle":19,"seoDescription":20},"post-1","nuxt-ssr-blog-architecture","用 Nuxt SSR 搭一个可运营的 Blog","从路由、数据获取、SEO 到后台编辑，整理一套轻量但完整的 Blog 前端架构。","\u003Ch2>为什么公开站点选择 SSR\u003C\u002Fh2>\u003Cp>Blog 的核心目标是被阅读、被索引、被分享。SSR 可以让文章标题、摘要和正文在首屏 HTML 中直接出现，也让搜索引擎和社交卡片获取稳定内容。\u003C\u002Fp>\u003Cp>后台依旧使用 Vite SPA，把高频操作保持在一个响应迅速的管理界面里。\u003C\u002Fp>\u003Cblockquote>\u003Cp>公开端追求可发现性，管理端追求操作效率。\u003C\u002Fp>\u003C\u002Fblockquote>\u003Ccode>npm list -g --depth-0\u003Cbr>npm i -g @anthropic-ai\u002Fclaude-code@latest\u003Cbr>npm i -g @openai\u002Fcodex@latest\u003Cbr>npm i -g @google\u002Fgemini-cli@latest\u003C\u002Fcode>\u003Ch2>基础规则\u003C\u002Fh2>\u003Cp>如果你没有时间看更详细的论坛规定，建议也看一下论坛的基础规则\u003Cbr>以下为论坛基础规则，违反基础规则会受到扣除大量鸡腿、禁言或者禁止账号的惩罚\u003C\u002Fp>\u003Col>\u003Cli>禁止人身攻击，辱骂他人，恶意引战，提倡理性讨论\u003C\u002Fli>\u003Cli>禁止讨论政治、成人\u002F低俗、暴力等及其他引起不适的内容\u003C\u002Fli>\u003Cli>禁止灰产黑产内容，如DDOS\u002FCC攻击、赌博，社工、免流等\u003C\u002Fli>\u003Cli>坚持“谁主张，谁举证”的原则，禁止故意扭曲事实抹黑他人\u003C\u002Fli>\u003Cli>不鼓励灌水行为，详细规定参考下方『灌水行为规定细则』\u003C\u002Fli>\u003Cli>对于代理技术的讨论，禁止分享神秘链接，禁止发布教程贴，详细规则见下方『代理相关的讨论的规定细则』\u003C\u002Fli>\u003Cli>对管理裁决有异议的，可以参考下方『申诉细则』\u003C\u002Fli>\u003C\u002Fol>\u003Ch2>等级相关\u003C\u002Fh2>\u003Cul>\u003Cli>用户等级由鸡腿数目动态计算得到，鸡腿数目越高等级越高，最高为Lv6\u003C\u002Fli>\u003Cli>当鸡腿降低至临界值的时候用户等级会同时降低，最低等级为Lv0；\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>鸡腿相关\u003C\u002Fh2>\u003Cp>鸡腿是本论坛使用的通用积分单位，鸡腿的数目对于用户来说非常重要！因为用户的等级，发表查看帖子的权限，邀请好友，点赞与反对等行为都与鸡腿相关。\u003C\u002Fp>\u003Ch3>收获鸡腿的方法\u003C\u002Fh3>\u003Cul>\u003Cli>注册后自动获得一定数目的鸡腿，目前设定为90\u003C\u002Fli>\u003Cli>每天签到可以获得指数随机数值的鸡腿，平均数值为5鸡腿\u002F天\u003C\u002Fli>\u003Cli>每次发表帖子获得5鸡腿，每天上限20\u003C\u002Fli>\u003Cli>每次发表评论获得1鸡腿，每天上限20\u003C\u002Fli>\u003Cli>帖子或评论被别人加鸡腿后，会增加相应的数目\u003C\u002Fli>\u003Cli>反馈论坛bug，核实后赠送鸡腿20-50个\u003C\u002Fli>\u003Cli>对论坛建设或论坛规定提出宝贵意见，采纳后赠送10-50鸡腿\u003C\u002Fli>\u003Cli>帖子被选为推荐阅读，将收到10-50鸡腿，详细说明参考\u003C\u002Fli>\u003Cli>管理可以获得每天5鸡腿的津贴\u003C\u002Fli>\u003C\u002Ful>\u003Ch3>消耗鸡腿的行为\u003C\u002Fh3>\u003Cul>\u003Cli>给喜欢的帖子或者评论加鸡腿后，会消耗掉自身一个鸡腿（同时增加被加鸡腿的用户一个鸡腿）\u003C\u002Fli>\u003Cli>反对你不支持的帖子或者评论，会消耗掉自身一个鸡腿，同时扣除被反对者一个鸡腿\u003C\u002Fli>\u003Cli>违反论坛规定，将扣除一定的鸡腿，详细规定参考\u003C\u002Fli>\u003C\u002Ful>\u003Ch3>鸡腿数目为负数的限制\u003C\u002Fh3>\u003Cul>\u003Cli>无法发表新的帖子和评论，无法回复私信\u003C\u002Fli>\u003Cli>鸡腿为负数的时候等级已经跌落至0，无法查看有阅读权限限制的帖子\u003C\u002Fli>\u003C\u002Ful>","\u002Fimages\u002Fblog\u002Fcovers\u002Fengineering-desk.jpg","published","2026-05-01T10:30:00.000Z","Gono","cat-engineering",[17,18],"tag-nuxt","tag-vue","Nuxt SSR Blog 架构设计","一套使用 Nuxt SSR、Vue Admin 和 Tailwind 的 Blog 前端架构。",{"id":22,"slug":23,"title":24,"excerpt":25,"contentHtml":26,"coverImage":27,"status":12,"publishedAt":28,"updatedAt":28,"authorName":14,"categoryId":29,"tagIds":30,"seoTitle":33,"seoDescription":33},"post-2","admin-writing-workflow","后台写作工作流应该轻一点","管理后台不是越重越好，文章编辑、发布状态和 SEO 字段才是第一版真正重要的能力。","\u003Ch2>先把写作链路跑通\u003C\u002Fh2>\u003Cp>第一版后台应该围绕文章列表、编辑、预览、发布和分类标签组织。媒体库和 SEO 字段只需要做到足够顺手，别让内容维护的人迷路。\u003C\u002Fp>\u003Cul>\u003Cli>草稿可以随时保存\u003C\u002Fli>\u003Cli>发布动作明确可逆\u003C\u002Fli>\u003Cli>SEO 字段有合理 fallback\u003C\u002Fli>\u003C\u002Ful>","\u002Fimages\u002Fblog\u002Fcovers\u002Fplanning-notes.jpg","2026-04-28T08:00:00.000Z","cat-product",[31,32],"tag-design","tag-ops","",{"id":35,"slug":36,"title":37,"excerpt":38,"contentHtml":39,"coverImage":27,"status":12,"publishedAt":40,"updatedAt":40,"authorName":14,"categoryId":29,"tagIds":41,"seoTitle":42,"seoDescription":43},"post-product-1","product-empty-state-as-onboarding","让空状态成为产品的第一句解释","空状态不只是占位，它应该告诉用户当前发生了什么、下一步能做什么，以及系统会如何反馈。","\u003Ch2>空状态是一种入口\u003C\u002Fh2>\u003Cp>很多产品会把空状态写成一句“暂无数据”，但这其实错过了最重要的解释时刻。用户第一次进入页面时，空状态应该交代对象、边界和下一步动作。\u003C\u002Fp>\u003Cp>好的空状态像一个轻量的新手引导：告诉用户为什么现在为空，也告诉用户填充它之后会得到什么。\u003C\u002Fp>\u003Cul>\u003Cli>说明当前页面管理什么\u003C\u002Fli>\u003Cli>给出一个明确的主操作\u003C\u002Fli>\u003Cli>把错误、权限和加载状态区分开\u003C\u002Fli>\u003C\u002Ful>","2026-04-27T09:10:00.000Z",[31],"产品空状态设计笔记","从说明、行动和反馈三个角度整理产品空状态的设计方法。",{"id":45,"slug":46,"title":47,"excerpt":48,"contentHtml":49,"coverImage":50,"status":12,"publishedAt":51,"updatedAt":51,"authorName":14,"categoryId":29,"tagIds":52,"seoTitle":53,"seoDescription":54},"post-product-2","product-feedback-loop-from-entry","从反馈入口设计内容运营闭环","反馈入口不是一个表单按钮，而是连接用户问题、后台处理和公开内容迭代的运营回路。","\u003Ch2>反馈入口要能被追踪\u003C\u002Fh2>\u003Cp>一个有效的反馈系统应该把问题来源、处理状态和结果沉淀串起来。入口越轻，后续分流越要清楚，否则后台只会积累一堆难以行动的文本。\u003C\u002Fp>\u003Cp>可以把反馈分成缺陷、建议、内容补充和账号问题，再让每类反馈进入不同的处理节奏。\u003C\u002Fp>\u003Cblockquote>\u003Cp>能被处理的反馈，才是产品真正听见的声音。\u003C\u002Fp>\u003C\u002Fblockquote>","\u002Fimages\u002Fblog\u002Fcovers\u002Fwriting-feedback.jpg","2026-04-26T09:10:00.000Z",[31,32],"反馈入口与产品运营闭环","围绕反馈入口、后台状态和内容迭代设计一个可运营的产品闭环。",17,1,4,5,[60,64,68],{"id":29,"slug":61,"name":62,"description":63},"product","产品笔记","关于产品设计、用户体验和业务观察的长文。",{"id":15,"slug":65,"name":66,"description":67},"engineering","工程实践","前端、架构、性能和工程协作经验。",{"id":69,"slug":70,"name":71,"description":72},"cat-field","field-notes","现场札记","真实项目中的决策记录和复盘。",1777827106849]