vueのカスタムプラグイン
1147 ワード
rulesPlugin.js
const RulesPlugin = {
install (Vue) {
Vue.mixin({
created() {
const rules = this.$options.rules
if (rules) {
Object.keys(rules).forEach(key => {
const {validate, message} = rules[key]
this.$watch(key, newValue => {
const valid = validate(newValue)
if (!valid){
console.error(message)
}
})
})
}
},
})
}
}
Vue.use(RulesPlugin)
const vm = new Vue({
data: { number: 1, phone: '11'},
rules: {
number: {
validate: value => value > 0,
message: 'number 0'
},
phone: {
validate: value => value.length === 11,
message: ' 11 '
}
},
})