Vue清空子组件数据问题

简述:在父组件中使用子组件中所提供的数据,在触发事件后,要求清空子组件所遗留的数据

如图所示:

        

 红框:子组件         绿框:父组件

 技术栈:ElementUI + Vue2

子组件代码:

<template>
<el-form-item label="车牌号:" prop="car_no">
    <el-input placeholder="请输入内容" v-model.trim="upper_suff" @blur="sendCarno">
       <el-select v-model="province" slot="prepend" placeholder="请选择" style="width: 100px;">
          <el-option v-for="item in prov_abbrev" :key="item.key" :label="item.value" :value="item.value"></el-option>
            </el-select>
        </el-input>
    </el-form-item>
</template>

export default {
    name: 'provinceSelect',
    data() {
        return {
            car_no: '', //车牌号
            prov_abbrev: [], //下拉框数据
            province: '', // 车牌号 前缀
            suffix: '' // 车牌号 后缀
        };
    },
    created() {
        this.province_data();
    },
    computed: {
        // 大写转换
        upper_suff: {
            get() {
                return this.suffix;
            },
            set(val) {
                this.suffix = val.toUpperCase();
            }
        }
    },
    methods: {
        // 车牌号
        province_data() {
            var keyJC = ['京','津','黑', ];
            this.prov_abbrev = keyJC.map((item, index) => ({ key: index, value: item }));
        },
        // 数据字段拼接
        info_splic() {
            this.car_no = this.province + this.suffix;
        },
        //触发自定义事件
        sendCarno() {
            this.info_splic();
            this.$emit('getCarno', this.car_no);
        },
        // 重置数据
        reset_data() {
            (this.province = ''), (this.suffix = '');
        }
    }
};
</script>

<style></style>

父组件代码块:

//template 
//provinceSelect 为组件名称
<provinceSelect @getCarno="getprovince_data" ref="reset"></provinceSelect>


//methods
// 表单提交验证
submit_add() {
   this.$refs.add_from.validate(valid => {
      if (valid) {
         this.addNewinfo();
          this.$refs.reset.reset_data(); //清除子组件数据
      }
    });
},

解决方法:在子组件中绑定ref,通过触发    this.$refs.绑定属性名称.子组件事件    调用子组件中的清空数据事件来达到要求

如有不对,欢迎指正!

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值