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 ' } }, })