猿问

关于一个vue2插件的部分源码疑惑

这个插件是vuelidate

研究了它大半天,完全基于es6的写法,写的很酷炫,对于部分核心函数代码,没看懂。。
就如下面的例子

    const buildFromKeys = (keys, fn, keyFn) => keys.reduce((build, key) => {
      build[keyFn ? keyFn(key) : key] = fn(key)      return build
    }, {})    
  const computedRules = buildFromKeys(validationKeys, (key) => {    const rule = validations[key]    
  return mapValidator(rootVm, rule, key, parentVm, parentProp)
  }, mapDynamicKeyName)  const validationVm = new Vue({
    data: {
      dirty: false,
      dynamicKeys
    },
    methods: defaultMethods,
    computed: {
      ...computedRules,
      ...defaultComputed
    }
  })

就单纯考虑 computed中的...computedRules来看,我也看过了 es6中关于...拓展运算符的用法,还是没搞懂,为什么它这里可以成功运行呢。
假如有人 研究过这个 开源插件 就更好啦,希望可以和你多请教点问题, 谢谢~


叮当猫咪
浏览 508回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答