美文网首页
vue watch 监测数据变化

vue watch 监测数据变化

作者: wy若只如初见 | 来源:发表于2018-05-21 15:01 被阅读0次
      <div class="app-container">
        <el-form ref="form" :model="form" label-width="120px">
          <el-form-item label="Activity name">
            <el-input v-model="form.name"></el-input>
          </el-form-item>
          <el-form-item label="Activity zone">
            <el-select v-model="form.region" placeholder="please select your zone">
              <el-option label="Zone one" value="shanghai"></el-option>
              <el-option label="Zone two" value="beijing"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="Activity time">
            <el-col :span="11">
              <el-date-picker type="date" placeholder="Pick a date" v-model="form.date1" style="width: 100%;"></el-date-picker>
            </el-col>
            <el-col class="line" :span="2">-</el-col>
            <el-col :span="11">
              <el-time-picker type="fixed-time" placeholder="Pick a time" v-model="form.date2" style="width: 100%;"></el-time-picker>
            </el-col>
          </el-form-item>
          <el-form-item label="Instant delivery">
            <el-switch v-model="form.delivery"></el-switch>
          </el-form-item>
          <el-form-item label="Activity type">
            <el-checkbox-group v-model="form.type">
              <el-checkbox label="Online activities" name="type"></el-checkbox>
              <el-checkbox label="Promotion activities" name="type"></el-checkbox>
              <el-checkbox label="Offline activities" name="type"></el-checkbox>
              <el-checkbox label="Simple brand exposure" name="type"></el-checkbox>
            </el-checkbox-group>
          </el-form-item>
          <el-form-item label="Resources">
            <el-radio-group v-model="form.resource">
              <el-radio label="Sponsor"></el-radio>
              <el-radio label="Venue"></el-radio>
            </el-radio-group>
          </el-form-item>
          <el-form-item label="Activity form">
            <el-input type="textarea" v-model="form.desc"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" @click="onSubmit" >Create</el-button>
            <el-button @click="onCancel">Cancel</el-button>
          </el-form-item>
        </el-form>
      </div>
    </template>
    
    export default {
      data() {
        return {
          form: {
            name: '',
            region: '',
            date1: '',
            date2: '',
            delivery: false,
            type: [],
            resource: '',
            desc: ''
          }
        }
      },
      watch: {
        newValue(nowVal, oldVal) {
          console.log(nowVal)
          console.log(oldVal)
          for (const key in nowVal) {
            if (nowVal[key] !== oldVal[key]) {
              console.log(key + `改变了,新值为` + nowVal[key])
              console.log('==================================')
              console.log(key + `改变了,旧值为` + oldVal[key])
              break
            } else {
              debugger
            }
          }
        },
        deep: true
      },
      computed: {
        newValue() {
          return { ...this.form }
        }
      },
      methods: {
        onSubmit() {
          this.$message('submit!')
        },
        onCancel() {
          this.$message({
            message: 'cancel!',
            type: 'warning'
          })
        }
      }
    }
    </script>
    
    .line{
      text-align: center;
    }
    </style>
    

    相关文章

      网友评论

          本文标题:vue watch 监测数据变化

          本文链接:https://www.haomeiwen.com/subject/shnfjftx.html