• 1.10 props methods inject computed合并

    1.10 props methods inject computed合并

    源码的设计将props.methods,inject,computed归结为一类,他们的配置策略一致,简单概括就是,如果父类不存在选项,则返回子类选项,子类父类都存在时,用子类选项去覆盖父类选项。

    1. // 其他选项合并策略
    2. strats.props =
    3. strats.methods =
    4. strats.inject =
    5. strats.computed = function (parentVal,childVal,vm,key) {
    6. if (childVal && "development" !== 'production') {
    7. assertObjectType(key, childVal, vm);
    8. }
    9. if (!parentVal) { return childVal } // 父类不存在该选项,则返回子类的选项
    10. var ret = Object.create(null);
    11. extend(ret, parentVal); //
    12. if (childVal) {
    13. // 子类选项会覆盖父类选项的值
    14. extend(ret, childVal); }
    15. return ret
    16. };