zl程序教程

您现在的位置是:首页 >  前端

当前栏目

vue3组件的数据双向绑定

Vue3组件数据 绑定 双向
2023-06-13 09:12:15 时间

第一步 在组件中向props添加modelValue属性

export default defineComponent({
  props: {
    modelValue: String
  },

在组件更新值的时候,发送一个update:modelValue的事件

<input type="text" class="form-control"
    :class="{'is-invalid': inputRef.error}"
    :value="inputRef.val"
    @input="updateValue"
    @blur="validateInput">
    <span v-if="inputRef.error" class="invalid-feedback">{{inputRef.message}}</span>
setup (props, context) {
    const inputRef = reactive({
      val: props.modelValue || '',
      error: false,
      message: ''
    })
    const updateValue = (e: KeyboardEvent) => {
      const targetValue = (e.target as HTMLInputElement).value
      inputRef.val = targetValue
      context.emit('update:modelValue', targetValue)
    }

在父组件使用v-model

<validate-input :rules="emailRules" v-model="emailVal"></validate-input>
    {{emailVal}}
 setup () {
    const emailVal = ref('')
    return {
      emailVal
    }
  }