vue组件根据不同条件进行渲染,保留上一次组件状态解决办法

问题场景: 根据需求开发的一个搜索title切换,值根据输入的变化,问题是在开发的时候,切换的效果是有了,商品ID是只支持输入数字的,这就导致,选择了商品ID之能输入数字后,在切换到商品名称的时候,只能输入数字的限制依然存在,我无法在输入框中输入汉字或者英文等。

在这里插入图片描述
在这里插入图片描述
原因: 组件存在缓存

方法: 添加key 唯一标识


  <div class="saerch-item">
          <el-select
            v-model="goodsType"
            @change="changeGoodsType"
            clearable
            style="width:100px;margin-right:5px"
            placeholder="请选择"
            size="mini"
          >
            <el-option label="商品名称" :value="1"></el-option>
            <el-option label="商品条码" :value="4"></el-option>
            <el-option label="商品标识" :value="3"></el-option>
            <el-option label="商品ID" :value="2"></el-option>
            <!-- <el-option label="活动编码" :value="3"></el-option> -->
          </el-select>
          <el-input
            v-if="goodsType==2"
            :key="Date.parse(new Date())"
            style="width:220px"
            clearable
            v-model="value"
            size="mini"
            :maxlength="19"
            placeholder="请输入商品ID,只能输入数字"
            v-enter-number
            show-word-limit
            @keyup.enter.native="doSearch"
          ></el-input>
          <el-input
            v-else
            :key="Date.parse(new Date())"
            style="width:220px"
            clearable
            v-model="value"
            size="mini"
            :maxlength="goodsType == 3 ? '200':100"
            :placeholder="'请输入' + (goodsType == 1 ? '商品名称'  : goodsType==3? '商品标识':'商品条码')"
            show-word-limit
            @keyup.enter.native="doSearch"
          ></el-input>
        </div>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值