v-model

101 阅读1分钟

目录

vue2

vue3

在v2中,v-model  ===> @input,                                 value

在v3中,v-model  ===> update:modelValue,       modelValue

这个重要,其他的不太重要


vue2

在vue2中 v-model 的实现就是利用v-bind:绑定响应式数据oninput触发事件并传递数据

通过这两个可以view层输入的值影响data里面的数据,data的属性值发生改变也会影响view层的更新

在vue2

常见的就是   利用elementui 组件库里的 form表单实现

 <el-form ref="deForm" :rules="rules" :model="form" label-width="120px">
    <el-form-item label="名称" prop="name">
      <el-input
        v-model="form.name"
        style="width: 80%"
        placeholder="1-50个字符"
      />
    </el-form-item>
  </el-form>

export default {
    data() {
     return{
       form: {
        name:''
      }    
    }
  }
  rules:{
    name:[
          { required: true, message: '名称不能为空', trigger: 'blur' },
          {
            min: 1,
            max: 50,
            message: '名称要求1-50个字符',
            trigger: 'blur'
          },
          { validator: validName, trigger: 'blur' }
     ],
  }
}

vue3

<input type="checkbox" v-model="xxxx"/>
          <!--v-model="isAgree" 
            :modelValue
            @update:modelValue
          -->

在v2中,v-model  ===> @input,                                 value

在v3中,v-model  ===> update:modelValue,       modelValue

<script lang="ts" setup name="XtxSwitch">

const props = defineProps({
  modelValue: {
    type: [Boolean, Number, String],
    default: true
  }
})
const emit = defineEmits(['update:modelValue'])
</script>