后台管理---表单组件实现双向绑定的方案

1.我们不仅封装了输入框,还得拿到输入框所输入的东西

2.因为最后提交表单的信息都是在父组件中提交的

3.我们可以在父组件里面定义数据,然后给子组件传入过去,并且让formData 里面的每个属性和每个表单的item 一一对应上。

4.我们可以在类型接口里面添加一个类型字段,

5.在配置里面添加相应的字段

 6.然后在组件每个item 通过 v-model 绑定每一属性

例子:动态获取

   <el-input
     :placeholder="item.placeholder"
     :show-password="item.type==='password'"
      v-model="formDate[`${item.field}`]"/>

#但是直接通过props 修改属性,这违反了单项数据流的规定

1.这个位置之前是通过属性来绑定数据的

2.我们现在可以通过v-model 进行数据的双向绑定实现

 3.组件的双向通过v-model 传进来 就是默认的 modelValue

 4. 我们可以使用watch 来监听这个值发生变化的时候在做修改

 emits:['update:modelValue'],
  setup(props,{emit}) {
    const formData=ref({...props.modelValue }) //相当于将原来的对象拷贝了一份
 //通过watch 监听formData 数据发生改变的时候,通过emit将数据发到外面的modelValue 里面
//  watch(监听的数据,(新值)=>发射(一个事件,新值),深度监听
   watch(
     formData,//监听这个数据
     (newValue)=>{ //当这个newvVlue 发生改变的时候,就把下面这个发出去
     emit('update:modelValue',newValue)
   },
   {deep:true})  //深度监听
    return {
      formData
    }
}

5.

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值