Vue使用element中table组件实现单选一行

简介: 如何在Vue中使用Element UI的table组件实现单选一行的功能。

Vue使用element中table组件实现单选一行

实现起来其实很简单,官方已经给了我们一个很好的例子。
在这里插入图片描述
看懂这个案例我们就可以实现单选。
html:

<div style="margin-top: 20px">
    <el-button @click="toggleSelection([tableData[1], tableData[2]])">切换第二、第三行的选中状态</el-button>
    <el-button @click="toggleSelection()">取消选择</el-button>
</div>

js:

    toggleSelection(rows) {
   
        if (rows) {
   
          rows.forEach(row => {
   
            this.$refs.multipleTable.toggleRowSelection(row);
          });
        } else {
   
          this.$refs.multipleTable.clearSelection();
        }
      },
    handleSelectionChange(val) {
   
        this.multipleSelection = val;
      }
    }

当点击第一个按钮的时候,实参为,列表的第二个,第三个对象,在具体的实现方法里面进行了循环,使用了ref来绑定table,

this.$refs.multipleTable.toggleRowSelection(row);

row为每一行的对象。 这样就实现了将第二行与第三行选中的效果。
在这个方法里面,如果不传形参的话,会进行清除选中操作:

this.$refs.multipleTable.clearSelection();

因此:

我们要实现单选的话,思路就是在每次点击的时候,都判断当前选中了几个,超过一个的话,清除所有选中,然后将最后一个选中。

    // 选中行返回选中信息
    getSelectRowFun(rows) {
   
      if (rows.length === 0) return;
      if (this.flag === "single" ) {
   
        this.$refs.multipleTable.$children[0].clearSelection();
        this.$refs.multipleTable.$children[0].toggleRowSelection(
          rows && rows.pop()
        );
      }
    },

在这里插入图片描述
实现。

目录
相关文章
|
2天前
|
JavaScript API
vue使用hook:声明周期来监听子组件的声明周期
本文介绍了如何在Vue中使用生命周期钩子来监听子组件的生命周期事件,包括在子组件内部监听和在父组件中监听子组件的生命周期钩子。
16 0
|
1天前
|
JavaScript
Vue+element_Table树形数据与懒加载报错Error in render: “RangeError: Maximum call stack size exceeded“
本文讨论了在使用Vue和Element UI实现树形数据和懒加载时遇到的“Maximum call stack size exceeded”错误,指出问题的原因通常是因为数据中的唯一标识符`id`不唯一,导致递归渲染造成调用栈溢出。
7 1
Vue+element_Table树形数据与懒加载报错Error in render: “RangeError: Maximum call stack size exceeded“
|
3天前
|
JavaScript
关于Vue非父子组件通信遇到的细节问题
本文讨论了Vue中非父子组件通信的一个细节问题,即当使用事件总线($eventsBus)进行通信时,需要确保两个组件能够同时在页面上显示,否则可能无法正确触发和监听事件。作者通过组件A和B的例子说明了这一点,并指出解决方案是在一个共同的父组件C中监听事件。
9 1
关于Vue非父子组件通信遇到的细节问题
|
3天前
|
JavaScript
Vue2.0、Vue3.0分别使用v-model封装组件[Vue必会]
本文介绍了在Vue 2和Vue 3中如何使用`v-model`来实现组件间的双向数据绑定,包括在Vue 2中使用`value`和`input`事件,以及在Vue 3中使用`modelValue`和`update:modelValue`事件的方法。
37 22
|
2天前
|
JavaScript
vue知识点
vue知识点
12 4
|
2天前
|
存储 JavaScript
vue页面跳转取消上一个页面请求
本文介绍了在Vue中如何取消上一个页面的请求,以避免页面跳转时请求未完成导致的数据错误。核心方法是使用axios的请求拦截器设置请求的取消令牌(cancelToken),并在vuex中存储这些取消令牌的引用。当进行路由跳转时,通过路由守卫清除这些请求,达到取消上一个页面请求的目的。
12 2
|
3天前
|
JSON JavaScript 数据格式
Vue路由params、query参数丢失解决
该文章介绍了在Vue中使用`params`和`query`进行路由参数传递时,如何通过`sessionStorage`或`localStorage`解决参数丢失的问题。
10 2
|
3天前
|
JavaScript
Vue在子组件中判断父组件是否传来事件
本文介绍了在Vue中如何通过`vm.$listeners`对象来判断父组件是否传递了特定的事件给子组件,并展示了如何检查事件是否存在以及相应的处理方法。
20 0
Vue在子组件中判断父组件是否传来事件
|
1天前
|
JavaScript
vue第一个项目之音乐播放器
vue第一个项目之音乐播放器
|
JavaScript 测试技术 容器
Vue2+VueRouter2+webpack 构建项目
1). 安装Node环境和npm包管理工具 检测版本 node -v npm -v 图1.png 2). 安装vue-cli(vue脚手架) npm install -g vue-cli --registry=https://registry.
1037 0