有点紧张,知所以不知所以然,回答全部是答非所问,回答不出来一直在提示我,可能我自己积累不够,仍然有很多需要提升的(等面试官的过程中先hr面试的然后才是技术面,技术面持续30min,快问快答基本上是)
1. 说一下vue的初始化过程
- 处理组件配置项
- 初始化根组件时进行了选项合并操作,将全局配置合并到根组件的局部配置上
- 初始化每个子组件时做了一些性能优化,将组件配置对象上的一些深层次属性放到 vm.$options 选项中,以提高代码的执行效率
- 初始化组件实例的关系属性,比如 parent、parent、parent、children、root、root、root、refs 等
- 处理自定义事件
- 调用 beforeCreate 钩子函数
- 初始化组件的 inject 配置项,得到 ret[key] = val 形式的配置对象,然后对该配置对象进行响应式处理,并代理每个 key 到 vm 实例上
- 数据响应式,处理 props、methods、data、computed、watch 等选项
- 解析组件配置项上的 provide 对象,将其挂载到 vm._provided 属性上
- 调用 created 钩子函数
- 如果发现配置项上有 el 选项,则自动调用
$mount
方法,也就是说有了 el 选项,就不需要再手动调用$mount
方法,反之,没提供 el 选项则必须调用$mount
- 接下来则进入挂载阶段