new Vue过程
new Vue后整个的流程
-
initProxy
:作用域代理,拦截组件内访问其它组件的数据。 -
initLifecycle
:建立父子组件关系,在当前组件实例上添加一些属性和生命周期标识。如[Math Processing Error]parent,parent,refs,$children,_isMounted等。 -
initEvents
:对父组件传入的事件添加监听,事件是谁创建谁监听,子组件创建事件子组件监听。 -
initRender
:声明[Math Processing Error]slots和slots和createElement()等。 -
initInjections
:注入数据,初始化inject,一般用于组件更深层次之间的通信。 -
initState
:重要)数据响应式:初始化状态。很多选项初始化的汇总:data,methods,props,computed和watch。 -
initProvide
:提供数据注入。
思考:为什么先注入再提供呢??
-
1、首先来自祖辈的数据要和当前实例的data,等判重,相结合,所以注入数据的initInjections一定要在InitState的上面。
-
2、 从上面注入进来的东西在当前组件中转了一下又提供给后代了,所以注入数据也一定要在上面。
vm.[Math Processing Error]mount(vm.mount(vm.options.el)
:挂载实例。