美文网首页
vue源码分析 initExtend ---三分一把刀

vue源码分析 initExtend ---三分一把刀

作者: 三分一把刀 | 来源:发表于2019-08-29 00:06 被阅读0次

    我是三分一把刀。

    上一节看了initMixin源码,这节会弄明白initExtend方法的具体逻辑与实现。

    代码内部没有进行操作,只是定义了vue.extend方法,印象中以前vue.extend(componentConfig)注册主键的时候会用到,就是把vue的一些特性继承复制过来。

    首先也是如果不是生产环境,会监测组件名称是否有效。

    const Sub = function VueComponent (options) { this._init(options)}

    这行代码的this本身要和Sub.prototype = Object.create(Super.prototype)结合起来,就会知道,this._init其实是调用的父级的初始化方法,将子级的原型链指向父级的原型链

    子级的options 和父级的options合并赋值给子级options,sub.options

    后面的操作基本是将父级的属性方法赋给子级。

    这里的initProps和initComputed没有进去做研究,看名称就知道是干啥,之后会补充。

    我是三分一把刀,有误的地方希望各位指正。

    https://juejin.im/post/5c88e669f265da2d8f47792a 【关于initProps 运作】

    initProps

        源代码种的逻辑是根据传进来的属性先进行prop是否有效并且返回,然后设置为响应式对象defineReactive。

    defineReactive可以理解为将数据设置为响应式数据,类似于java实体的get和set方法,内部实现自己的逻辑,给数据属性添加Dep依赖的实例。

    内置属性:key,ref,slot,slot-scope,is

    相关文章

      网友评论

          本文标题:vue源码分析 initExtend ---三分一把刀

          本文链接:https://www.haomeiwen.com/subject/fkyvectx.html