這個(gè)插件是vuelidate研究了它大半天,完全基于es6的寫法,寫的很酷炫,對(duì)于部分核心函數(shù)代碼,沒看懂。。就如下面的例子 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中關(guān)于...拓展運(yùn)算符的用法,還是沒搞懂,為什么它這里可以成功運(yùn)行呢。假如有人 研究過這個(gè) 開源插件 就更好啦,希望可以和你多請(qǐng)教點(diǎn)問題, 謝謝~
關(guān)于一個(gè)vue2插件的部分源碼疑惑
叮當(dāng)貓咪
2018-10-11 17:18:35