gitextract_wq0j9njv/ ├── README.md ├── docs/ │ ├── VNode节点.MarkDown │ ├── VirtualDOM与diff(Vue实现).MarkDown │ ├── Vue.js异步更新DOM策略及nextTick.MarkDown │ ├── Vuex源码解析.MarkDown │ ├── Vue事件机制.MarkDown │ ├── Vue组件间通信.MarkDown │ ├── 从template到DOM(Vue.js源码角度看内部运行机制).MarkDown │ ├── 从源码角度再看数据绑定.MarkDown │ ├── 依赖收集.MarkDown │ ├── 响应式原理.MarkDown │ ├── 聊聊Vue的template编译.MarkDown │ ├── 聊聊keep-alive组件的使用及其实现原理.MarkDown │ └── 说说element组件库broadcast与dispatch.MarkDown ├── images/ │ ├── VNode.sketch │ ├── VNode2.sketch │ ├── diff1.sketch │ ├── diff10.sketch │ ├── diff2.sketch │ ├── diff3.sketch │ ├── diff4.sketch │ ├── diff5.sketch │ ├── diff6.sketch │ ├── diff7.sketch │ ├── diff8.sketch │ └── diff9.sketch ├── vue-router-src/ │ ├── components/ │ │ ├── link.js │ │ └── view.js │ ├── create-matcher.js │ ├── create-route-map.js │ ├── history/ │ │ ├── abstract.js │ │ ├── base.js │ │ ├── hash.js │ │ └── html5.js │ ├── index.js │ ├── install.js │ └── util/ │ ├── async.js │ ├── dom.js │ ├── location.js │ ├── params.js │ ├── path.js │ ├── push-state.js │ ├── query.js │ ├── resolve-components.js │ ├── route.js │ ├── scroll.js │ └── warn.js ├── vue-src/ │ ├── compiler/ │ │ ├── codegen/ │ │ │ ├── events.js │ │ │ └── index.js │ │ ├── directives/ │ │ │ ├── bind.js │ │ │ ├── index.js │ │ │ └── model.js │ │ ├── error-detector.js │ │ ├── helpers.js │ │ ├── index.js │ │ ├── optimizer.js │ │ └── parser/ │ │ ├── entity-decoder.js │ │ ├── filter-parser.js │ │ ├── html-parser.js │ │ ├── index.js │ │ └── text-parser.js │ ├── core/ │ │ ├── components/ │ │ │ ├── index.js │ │ │ └── keep-alive.js │ │ ├── config.js │ │ ├── global-api/ │ │ │ ├── assets.js │ │ │ ├── extend.js │ │ │ ├── index.js │ │ │ ├── mixin.js │ │ │ └── use.js │ │ ├── index.js │ │ ├── instance/ │ │ │ ├── events.js │ │ │ ├── index.js │ │ │ ├── init.js │ │ │ ├── inject.js │ │ │ ├── lifecycle.js │ │ │ ├── proxy.js │ │ │ ├── render-helpers/ │ │ │ │ ├── bind-object-props.js │ │ │ │ ├── check-keycodes.js │ │ │ │ ├── render-list.js │ │ │ │ ├── render-slot.js │ │ │ │ ├── render-static.js │ │ │ │ ├── resolve-filter.js │ │ │ │ └── resolve-slots.js │ │ │ ├── render.js │ │ │ └── state.js │ │ ├── observer/ │ │ │ ├── array.js │ │ │ ├── dep.js │ │ │ ├── index.js │ │ │ ├── scheduler.js │ │ │ └── watcher.js │ │ ├── util/ │ │ │ ├── debug.js │ │ │ ├── env.js │ │ │ ├── error.js │ │ │ ├── index.js │ │ │ ├── lang.js │ │ │ ├── options.js │ │ │ ├── perf.js │ │ │ └── props.js │ │ └── vdom/ │ │ ├── create-component.js │ │ ├── create-element.js │ │ ├── create-functional-component.js │ │ ├── helpers/ │ │ │ ├── extract-props.js │ │ │ ├── get-first-component-child.js │ │ │ ├── index.js │ │ │ ├── merge-hook.js │ │ │ ├── normalize-children.js │ │ │ ├── resolve-async-component.js │ │ │ └── update-listeners.js │ │ ├── modules/ │ │ │ ├── directives.js │ │ │ ├── index.js │ │ │ └── ref.js │ │ ├── patch.js │ │ └── vnode.js │ ├── platforms/ │ │ ├── web/ │ │ │ ├── compiler/ │ │ │ │ ├── directives/ │ │ │ │ │ ├── html.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── model.js │ │ │ │ │ └── text.js │ │ │ │ ├── index.js │ │ │ │ ├── modules/ │ │ │ │ │ ├── class.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── style.js │ │ │ │ └── util.js │ │ │ ├── compiler.js │ │ │ ├── runtime/ │ │ │ │ ├── class-util.js │ │ │ │ ├── components/ │ │ │ │ │ ├── index.js │ │ │ │ │ ├── transition-group.js │ │ │ │ │ └── transition.js │ │ │ │ ├── directives/ │ │ │ │ │ ├── index.js │ │ │ │ │ ├── model.js │ │ │ │ │ └── show.js │ │ │ │ ├── index.js │ │ │ │ ├── modules/ │ │ │ │ │ ├── attrs.js │ │ │ │ │ ├── class.js │ │ │ │ │ ├── dom-props.js │ │ │ │ │ ├── events.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── style.js │ │ │ │ │ └── transition.js │ │ │ │ ├── node-ops.js │ │ │ │ ├── patch.js │ │ │ │ └── transition-util.js │ │ │ ├── runtime-with-compiler.js │ │ │ ├── runtime.js │ │ │ ├── server/ │ │ │ │ ├── directives/ │ │ │ │ │ ├── index.js │ │ │ │ │ └── show.js │ │ │ │ ├── modules/ │ │ │ │ │ ├── attrs.js │ │ │ │ │ ├── class.js │ │ │ │ │ ├── dom-props.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── style.js │ │ │ │ └── util.js │ │ │ ├── server-renderer.js │ │ │ └── util/ │ │ │ ├── attrs.js │ │ │ ├── class.js │ │ │ ├── compat.js │ │ │ ├── element.js │ │ │ ├── index.js │ │ │ └── style.js │ │ └── weex/ │ │ ├── compiler/ │ │ │ ├── directives/ │ │ │ │ ├── index.js │ │ │ │ └── model.js │ │ │ ├── index.js │ │ │ └── modules/ │ │ │ ├── append.js │ │ │ ├── class.js │ │ │ ├── index.js │ │ │ ├── props.js │ │ │ └── style.js │ │ ├── compiler.js │ │ ├── framework.js │ │ ├── runtime/ │ │ │ ├── components/ │ │ │ │ ├── index.js │ │ │ │ ├── transition-group.js │ │ │ │ └── transition.js │ │ │ ├── directives/ │ │ │ │ └── index.js │ │ │ ├── index.js │ │ │ ├── modules/ │ │ │ │ ├── attrs.js │ │ │ │ ├── class.js │ │ │ │ ├── events.js │ │ │ │ ├── index.js │ │ │ │ ├── style.js │ │ │ │ └── transition.js │ │ │ ├── node-ops.js │ │ │ ├── patch.js │ │ │ └── text-node.js │ │ ├── runtime-factory.js │ │ └── util/ │ │ └── index.js │ ├── server/ │ │ ├── bundle-renderer/ │ │ │ ├── create-bundle-renderer.js │ │ │ ├── create-bundle-runner.js │ │ │ └── source-map-support.js │ │ ├── create-renderer.js │ │ ├── render-context.js │ │ ├── render-stream.js │ │ ├── render.js │ │ ├── template-renderer/ │ │ │ ├── create-async-file-mapper.js │ │ │ ├── index.js │ │ │ ├── parse-template.js │ │ │ └── template-stream.js │ │ ├── util.js │ │ ├── webpack-plugin/ │ │ │ ├── client.js │ │ │ ├── server.js │ │ │ └── util.js │ │ └── write.js │ ├── sfc/ │ │ └── parser.js │ └── shared/ │ ├── constants.js │ └── util.js └── vuex-src/ ├── helpers.js ├── index.esm.js ├── index.js ├── mixin.js ├── module/ │ ├── module-collection.js │ └── module.js ├── plugins/ │ ├── devtool.js │ └── logger.js ├── store.js └── util.js