element-ui中el-radio-group组件绑定点击事件触发多次的解决办法

1、需求

电商首页需求,需要做个单选框,然后点击选中切换图标方向及更换价格升倒序,如下图:


从官网文档看,单选框支持change event,使用click 加载按钮处不会触发选中

但是使用 @click.native 事件不做处理的话会发送多次请求

解决方案如下:

bash 复制代码
<el-radio-group v-model="buttonRightRadio" id="buttonRightRadio">
                        <el-radio-button label="default" @click.native="sortBy('default',$event)">默认</el-radio-button>
                        <el-radio-button label="sales" @click.native="sortBy('sales',$event)">销量
                            <i :class="{'el-icon-top': sortType === 'sales' && sortDirection === 'desc', 'el-icon-bottom': sortType === 'sales' && sortDirection === 'asc'}"></i>
                        </el-radio-button>
                        <el-radio-button label="price" @click.native="sortBy('price',$event)">价格
                            <i :class="{'el-icon-top': sortType === 'price' && sortDirection === 'desc', 'el-icon-bottom': sortType === 'price' && sortDirection === 'asc'}"></i>
                        </el-radio-button>
                    </el-radio-group>
bash 复制代码
  sortBy(type, event) {
  //此处解决发送多次请求
            if (event.target.tagName != 'INPUT') {
                return;
            }
            if (type === 'default') {
                this.sortType = '';
                this.sortDirection = '';
                this.load();
                return;
            }
            if (this.sortType === type) {
                // 如果当前已经是该排序方式,则切换排序方向
                this.sortDirection = this.sortDirection === 'desc' ? 'asc' : 'desc';
                this.load()
            } else {
                // 如果当前不是该排序方式,则设置为该排序方式,并将排序方向设为降序
                this.sortType = type;
                this.sortDirection = 'desc';
                this.load()
            }
        },
相关推荐
Mintopia几秒前
AI 开发还是 AI 辅助开发?——我近月的实践感受与技术建议
前端
Mintopia4 分钟前
下面列出若干真实世界和典型的成功实施 AI 开发(即 AI 作为产品或业务核心驱动力)案例
前端
明月_清风4 分钟前
从 8 个实战场景深度拆解:为什么资深前端都爱柯里化?
前端·javascript
数据与人9 分钟前
Linux中Too many open files错误的解决
linux·服务器·前端
明月_清风10 分钟前
放弃 if-else:学会用 Compose(组合) 将复杂 AI 判别逻辑串成流水线
前端·javascript·函数式编程
CHU72903510 分钟前
货运物流APP前端交互创新:以用户为中心重构运输服务全链路
java·前端·小程序·重构
你怎么知道我是队长12 分钟前
前端学习---HTML---无序列表、有序列表、表格标签
前端
Zhencode15 分钟前
Vue核心运行时runtime-core之组件挂载流程
前端·javascript·vue.js
Hello.Reader15 分钟前
Qwik + Tauri 实战指南用静态导出把 Qwik 应用装进桌面应用里
前端·tauri
葡萄城技术团队22 分钟前
SpreadJS 页眉页脚配置指南:占位符与奇偶页详解
前端