首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏iOS开发干货分享

    小白也能秒懂Vue源码中那些精细设计(选项处理)

    hasOwn(parent, key)) { mergeField(key); } } function mergeField(key) { var strat = strats options 所拥有的属性就是调用mergeField函数传递进来的key。 举个栗子: 你在创建Vue的根实例,并且传递了一个自定义选项对象。 hasOwn(parent, key)) { mergeField(key); } } 通过for..in.. 语句把child对象上可枚举的属性名作为参数传递给mergeField。 (注:不扩展讲解) 当前栗子中"el"、"data"、"count" 这三个属性名作为字符串会作为参数传递给mergeField函数。 在回归到mergeField函数你是否能顿悟了。

    1.1K20发布于 2020-07-24
  • 来自专栏前端达人

    深入浅出 Vue Mixin

    mergeOptions(parent, child.mixins[i], vm) } } const options = {} let key for (key in parent) { mergeField hasOwn(parent, key)) { mergeField(key) } } function mergeField (key) { const strat hasOwn(parent, key)) { mergeField(key) } } function mergeField (key) { const strat 走入到 mergeField 流程。mergeField 先取合并策略。

    56810发布于 2021-03-16
  • 来自专栏Vue中文社区

    面试官:说说你对vue的mixin的理解,有哪些应用场景?

    mergeOptions(parent, child.mixins[i], vm) } } const options = {} let key for (key in parent) { mergeField hasOwn(parent, key)) { // 如果parent已经处理过某个key 就不处理了 mergeField(key) // 处理child中的key 也就parent中没有处理过的 key } } function mergeField (key) { const strat = strats[key] || defaultStrat options options调用strats中不同的方法进行合并 } return options } 从上面的源码,我们得到以下几点: 优先递归处理 mixins 先遍历合并parent 中的key,调用mergeField 方法进行合并,然后保存在变量options 再遍历 child,合并补上 parent 中没有的key,调用mergeField方法进行合并,保存在变量options 通过 mergeField 函数进行了合并

    2.1K10发布于 2021-02-26
  • 来自专栏coding个人笔记

    vue mixins原理

    parent = mergeOptions(parent, mixin); } } for (let key in parent) { mergeField parent.hasOwnProperty(key)) { mergeField(key); } } function mergeField(key

    60210发布于 2020-09-14
  • 来自专栏前端自习课

    【Vuejs】887- 深入浅出 Vue Mixin

    mergeOptions(parent, child.mixins[i], vm) } } const options = {} let key for (key in parent) { mergeField hasOwn(parent, key)) { mergeField(key) } } function mergeField (key) { const strat hasOwn(parent, key)) { mergeField(key) } } function mergeField (key) { const strat 走入到 mergeField 流程。mergeField 先取合并策略。

    59820发布于 2021-03-16
  • 来自专栏青梅煮码

    vue核心面试题:组件中的data为什么是一个函数

    child.mixins[i], vm) } } } const options = {} let key // 循环父类 for (key in parent) { mergeField hasOwn(parent, key)) { mergeField(key) } } // 合并字段 function mergeField (key) { const

    94010编辑于 2023-02-18
  • 来自专栏前端Q

    Vue 合并策略 optionMergeStrategies 看这里就够了

    我们看 mergeOptions 函数的最后一部分源码: const options = {} let key for (key in parent) { mergeField( hasOwn(parent, key)) { mergeField(key) } } function mergeField (key) { const strat options[key] = strat(parent[key], child[key], vm, key) } 可以看到, 分别遍历 parent 和 child 对象, 对每一个 key 值都调用了mergeField ()函数 mergeField()函数是最终的合并策略函数。

    1.4K31发布于 2021-05-18
  • 来自专栏IT民工的代码世界

    c#使用Aspose实现Word域套打

    word域还可以用于一些对于格式要求严格的文档导出(将域建立在模板图片上),本文使用c#基于Aspose.Word实现word域套打功能 创建域 以word2013为例,插入-文本-文档部件-域,选择MergeField

    86920编辑于 2023-07-19
  • 来自专栏Vue源码 & 前端进阶体系

    【Vue原理】Mixins - 源码版

    var options = {}, key; // 先处理 parent 的 key, for (key in parent) { mergeField parent.hasOwnProperty(key)) { mergeField(key); } } // 拿到相应类型的合并函数,进行合并字段 ,strats 请看下面 function mergeField(key) { // strats 保存着各种字段的处理函数,否则使用默认处理 var

    83830发布于 2019-08-02
  • 来自专栏二少爷的花间集

    基于TypeScript封装Axios笔记(七)

    config2 = {} 7 } 8 9 const config = Object.create(null) 10 11 for (let key in config2) { 12 mergeField config2[key]) { 17 mergeField(key) 18 } 19 } 20 21 function mergeField(key: string): void { [key]) 24 } 25 26 return config 27} 合并方法的整体思路就是对 config1 和 config2 中的属性遍历,执行 mergeField 方法做合并,这里 config1 的接口定义添加一个字符串索引签名:‍ 1export interface AxiosRequestConfig { 2 // ... 3 4 [propName: string]: any 5} 在 mergeField

    2.1K20发布于 2020-08-26
  • Vue——mergeOptions【四】

    } } } const options: ComponentOptions = {} as any let key for (key in parent) { mergeField hasOwn(parent, key)) { mergeField(key) } } // 合并parent和child选项 function mergeField(key

    19210编辑于 2024-08-15
  • 来自专栏前端文章小tips

    Vue 高频原理面试篇+详细解答

    vm) } } } // 递归遍历合并组件和混入的属性 const options = {} let key for (key in parent) { mergeField hasOwn(parent, key)) { mergeField(key) } } function mergeField (key) { const strat

    92810编辑于 2021-12-09
  • 来自专栏前端工程师面试指南

    vue源码分析-从new Vue开始

    child.mixins[i], vm) } } // 使用strat中的合并方法去依次合并配置对象 const options = {} let key for (key in parent) { mergeField hasOwn(parent, key)) { mergeField(key) } } function mergeField (key) { const strat = strats

    76540编辑于 2022-10-19
  • 来自专栏前端面试题14

    vue源码分析-从new Vue开始_2023-02-24

    vm) } } // 使用strat中的合并方法去依次合并配置对象 const options = {} let key for (key in parent) { mergeField hasOwn(parent, key)) { mergeField(key) } } function mergeField (key) { const strat

    60750编辑于 2023-02-24
  • 来自专栏码农小余

    [咖聊] 您瞅啥?瞅 reactive

    聚焦到 data 部分: function initData (vm: Component) { // 获取合并 data 的处理函数,在mergeField时会合并,栗子 中的 parentVal

    72940编辑于 2022-06-16
领券