MCPcopy Create free account
hub / github.com/ygs-code/vue / initInternalComponent

Function initInternalComponent

vue.js:6830–6859  ·  view source on GitHub ↗
(
        vm,  //vue实例
        options //选项参数
    )

Source from the content-addressed store, hash-verified

6828
6829 //初始化内部组件
6830 function initInternalComponent(
6831 vm, //vue实例
6832 options //选项参数
6833 ) {
6834 var opts = vm.$options = Object.create(vm.constructor.options); //vm的参数
6835 // doing this because it's faster than dynamic enumeration. 这样做是因为它比动态枚举快。
6836 // var options = {
6837 // _isComponent: true, //是否是组件
6838 // parent: parent, //组件的父节点
6839 // _parentVnode: vnode, //组件的 虚拟vonde 父节点
6840 // _parentElm: parentElm || null, //父节点的dom el
6841 // _refElm: refElm || null //当前节点 el
6842 // }
6843 var parentVnode = options._parentVnode;
6844 opts.parent = options.parent; //组件的父节点
6845 opts._parentVnode = parentVnode; //组件的 虚拟vonde 父节点
6846 opts._parentElm = options._parentElm; //父节点的dom el
6847 opts._refElm = options._refElm; //当前节点 el
6848
6849 var vnodeComponentOptions = parentVnode.componentOptions; //组件参数
6850 opts.propsData = vnodeComponentOptions.propsData; //组件数据
6851 opts._parentListeners = vnodeComponentOptions.listeners;//组件 事件
6852 opts._renderChildren = vnodeComponentOptions.children; //组件子节点
6853 opts._componentTag = vnodeComponentOptions.tag; //组件的标签
6854
6855 if (options.render) { //渲染函数
6856 opts.render = options.render; //渲染函数
6857 opts.staticRenderFns = options.staticRenderFns; //静态渲染函数
6858 }
6859 }
6860
6861 //解析new Vue constructor上的options拓展参数属性的 合并 过滤去重数据
6862 function resolveConstructorOptions(Ctor) {

Callers 1

initMixinFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected