vue2官网
打开 vue2 官网(v2.vuejs.org),第一眼看到的就是那句“渐进式 JavaScript 框架”。这五个字其实把 Vue 2 的定位说得很清楚——它不逼你一次性把整个项目推倒重来,你可以只拿它渲染一个按钮,也可以用它搭一整套单页应用。我最早接触 Vue 2 是在 2017 年,当时项目里还在用 jQuery 拼 DOM,一个列表页改了数据要手动 append 和 remove,代码越写越像一团乱麻。官网的“起步”章节里有个最简示例,一个 div 加一行 new Vue,数据一变视图就跟着变。那种感觉像是有人把你手里的手动挡换成了自动挡。 官网的文档结构分得很细。指南、API、风格指南、示例、生态,左侧导航栏一拉,基本能找到所有东西。我印象最深的是“计算属性”那一节,它没有一上来就讲 computed 的缓存机制,而是先给一个模板里塞太多逻辑的例子,然后说“这样写太啰嗦,用计算属性吧”。这种从问题出发的写法,比直接甩 API 定义要舒服得多。还有 v-if 和 v-show 的对比,官网用了一个很直白的说法:v-if 是“真实”的条件渲染,切换时销毁和重建;v-show 只是切换 CSS 的 display。什么时候用哪个,文档不绕弯子。 Vue 2 的响应式原理在官网“深入响应式原理”那页讲得挺透。它提到 Object.defineProperty 把 data 里的属性转成 getter/setter,每个组件实例对应一个 watcher,属性变化时通知 watcher 重新渲染。但也明确说了两个坑:对象属性的添加和删除不会触发更新,数组通过索引改值也不会。我第一次踩这个坑是在一个表格组件里,直接给 item 加了个 checked 字段,视图死活不动,后来翻官网才知道要用 Vue.set。这种“先告诉你边界在哪”的文档风格,比只讲好话的教程实在。 组件通信那块,官网列了 props、自定义事件、$emit、$parent/$children、provide/inject 这些方式。没有一锅端地说“用 Vuex 就对了”,而是按场景分。父子通信用 props 和事件,跨层级用 provide/inject,全局状态才上 Vuex。我见过一个项目,两个相邻组件传个值也硬塞进 Vuex,代码绕得不行。官网这种“够用就好”的态度,其实是在帮你控制复杂度。 风格指南是另一个我觉得被低估的部分。它分了必要、强烈推荐、推荐、谨慎使用四个等级。比如“组件名应该是多个单词”是必要级别,因为 HTML 元素都是单个单词,避免冲突。“Prop 定义应该尽量详细”是强烈推荐。这些规则不是拍脑袋定的,每条后面都有解释。我团队里之前有人写组件叫 官网的“示例”页面放了一些可编辑的 playground,比如 TodoMVC、Markdown 编辑器、购物车。点进去直接改代码,右边实时预览。这个设计对新手很友好,不用配环境就能试。我有时候想验证一个指令的写法,也会去 playground 里敲两行,比在项目里改来改去快得多。 Vue 2 官网没有花哨的动画和营销话术,就是文档该有的样子。它承认自己的局限,比如 IE9 以下不支持,比如响应式对数组和对象的限制。它也告诉你什么时候该用 Vuex,什么时候不该。这种克制在技术文档里不多见。现在 Vue 3 已经成了默认版本,但 v2.vuejs.org 这个域名还在,文档还能访问。偶尔回去翻翻,那些示例和说明依然清晰。对于还在维护 Vue 2 项目的人来说,这个官网就是最靠谱的参考手册。Header,和原生标签撞了,调试了半天。后来我们把风格指南打印出来贴在墙上,新来的同事先看一遍再写代码。