[{"data":1,"prerenderedAt":29},["ShallowReactive",2],{"category-blog-source-code":3,"category-docs-source-code":28},[4,14,21],{"path":5,"title":6,"description":7,"date":8,"category":9,"tags":10},"\u002Fblog\u002Fvue-reactivity-principle","Vue 响应式原理源码解析","从 Vue 初始化流程切入，逐层剖析 initState 如何将 props 与 data 转为响应式，讲清依赖收集与派发更新的完整链路。","2025-03-08","source-code",[11,9,12,13],"vue","reactivity","javascript",{"path":15,"title":16,"description":17,"date":8,"category":9,"tags":18},"\u002Fblog\u002Fvue-router-source-code-analysis","VueRouter 源码深度解析","拆解 hash 与 history 两种路由模式的底层差异，跟读路由注册、匹配与导航守卫的源码实现。",[11,19,9,20],"vue-router","browser",{"path":22,"title":23,"description":24,"date":8,"category":9,"tags":25},"\u002Fblog\u002Fvuex-source-code-analysis","Vuex 源码深度解析","从单例模式与单向数据流的设计思想入手，跟读 install 函数、store 构造与响应式状态的实现细节。",[11,26,9,27],"vuex","design-pattern",[],1788337377922]