这个插件是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中关于...
拓展运算符的用法,还是没搞懂,为什么它这里可以成功运行呢。
假如有人 研究过这个 开源插件 就更好啦,希望可以和你多请教点问题, 谢谢~
相关分类