# Vue 知识大纲
# 一、Vue 基础
# 1.1 Vue 的基本原理
# 1.2 双向数据绑定的原理
# 1.3 MVVM、MVC、MVP 的区别
# 1.4 Computed 和 Watch 的区别
# 1.5 Computed 和 Methods 的区别
# 1.6 v-if 和 v-show 的区别
# 1.7 data 是函数而不是对象的原因
# 1.8 Vue 单页应用与多页应用的区别
# 1.9 对 React 和 Vue 的理解及异同
# 1.10 Vue 的优点
# 1.11 对 SPA 单页面的理解及优缺点
# 1.12 Vue.use 的实现原理
# 1.13 使用 Object.defineProperty () 进行数据劫持的缺点
# 1.14 slot 的定义、作用及原理
# 1.15 保存页面当前状态的方法
# 1.16 常见事件修饰符及其作用
# 1.17 v-if、v-show、v-html 的原理
# 1.18 对 keep-alive 的理解及实现原理,缓存的内容
# 1.19 Vue 中封装的数组方法及页面更新实现
# 1.20 Vue template 到 render 的过程
# 1.21 Vue data 中属性值改变后视图是否立即重新渲染
# 1.22 Vue 监听对象或数组属性变化的方法
# 1.23 Vue 模版编译原理
# 1.24 对 SSR 的理解
# 1.25 Vue 的性能优化方法
# 1.26 MVVM 的优缺点
# 1.27 过滤器的作用及实现方法
# 1.28 v-model 的实现原理及语法糖实际内容
# 1.29 $nextTick 原理及作用
# 1.30 Vue 中给 data 中的对象属性添加新属性的情况及解决方法
# 1.31 简述 mixin、extends 的覆盖逻辑
# 1.32 子组件能否直接改变父组件的数据
# 1.33 assets 和 static 的区别
# 1.34 delete 和 Vue.delete 删除数组的区别
# 1.35 什么是 mixin
# 1.36 template 和 jsx 的区别
# 1.37 Vue 初始化页面闪动问题
# 1.38 v-model 能否用在自定义组件上及使用方法
# 1.39 描述 Vue 自定义指令
# 1.40 Vue 收集依赖的方法
# 1.41 extend 的作用
# 1.42 mixin 和 mixins 的区别
# 二、生命周期
# 2.1 Vue 的生命周期
# 2.2 created 和 mounted 的区别
# 2.3 一般在哪个生命周期请求异步数据
# 2.4 keep-alive 中的生命周期
# 2.5 Vue 子组件和父组件执行顺序
# 三、组件通信
# 3.1 组件通信的方式
(props / $emit、eventBus 事件总线、依赖注入、ref / 、parent / 、 attrs / $listeners)