vue3獲取選中的el-table行數(shù)據(jù)方式
在Vue 3中,如果你正在使用<el-table>組件(來自Element Plus或Element UI庫),并希望獲取被選中的行數(shù)據(jù),你可以通過幾種不同的方式來實(shí)現(xiàn)。
以下是幾種常見的方法:
方法1:使用@selection-change事件
<el-table>組件提供了一個(gè)@selection-change事件,該事件會(huì)在選中項(xiàng)發(fā)生變化時(shí)觸發(fā),你可以在這個(gè)事件的處理函數(shù)中獲取當(dāng)前的選中行數(shù)據(jù)。
首先,確保你的<el-table>組件的type屬性設(shè)置為selection,這樣就會(huì)顯示復(fù)選框,允許用戶選擇行。
<template>
<el-table
:data="tableData"
@selection-change="handleSelectionChange"
style="width: 100%"
ref="multipleTable"
>
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column
property="date"
label="日期"
width="120">
</el-table-column>
<el-table-column
property="name"
label="姓名"
width="120">
</el-table-column>
<!-- 其他列 -->
</el-table>
</template><script setup>
import { ref } from 'vue';
const tableData = ref([/* 你的數(shù)據(jù) */]);
const selectedRows = ref([]);
const handleSelectionChange = (val) => {
selectedRows.value = val; // val是當(dāng)前選中行的數(shù)組
};
</script>方法2:使用Table實(shí)例的selection屬性
如果你需要通過編程方式訪問或操作選中的行,你可以使用<el-table>組件的ref屬性來引用該組件的實(shí)例,然后通過該實(shí)例的selection屬性來獲取選中的行數(shù)據(jù)
<template>
<el-table
:data="tableData"
ref="multipleTableRef"
style="width: 100%"
>
<el-table-column
type="selection"
width="55">
</el-table-column>
<!-- 列定義 -->
</el-table>
<el-button @click="getSelectionRows">獲取選中行</el-button>
</template><script setup>
import { ref } from 'vue';
import { ElTable } from 'element-plus'; // 或 'element-ui' 取決于你使用的庫版本和包名
const tableData = ref([/* 你的數(shù)據(jù) */]);
const multipleTableRef = ref(null); // 通過ref獲取組件實(shí)例
const getSelectionRows = () => {
if (multipleTableRef.value) { // 檢查ref是否已正確引用組件實(shí)例
const selectedRows = multipleTableRef.value.selection; // 獲取選中行數(shù)據(jù)數(shù)組
console.log(selectedRows); // 處理或顯示選中行數(shù)據(jù)
}
};
</script>在Element Plus中,直接通過selection屬性訪問選中行的功能已經(jīng)被移除。
你應(yīng)該使用getSelectionRows方法(如方法1所示)來處理這一需求。
如果你使用的是Element UI,那么上述方法2是可行的。但在Element Plus中,推薦使用方法1。
方法3:使用v-model:checked-rows.sync(已廢棄)或v-model:checked-rows(Element Plus)
雖然在一些舊版本的Element UI中,你可以使用v-model:checked-rows.sync(或在Element Plus中為v-model:checked-rows)來直接綁定選中的行數(shù)據(jù),但這種方法在Vue 3和Element Plus中已經(jīng)被廢棄或更改。推薦使用上述方法1來處理這個(gè)問題。
推薦使用方法1(通過@selection-change事件處理選中行數(shù)據(jù)),這是最通用且符合Vue 3和Element Plus最新實(shí)踐的方法。如果你使用的是Element UI并且想要通過實(shí)例直接訪問選中行,請(qǐng)確保你的項(xiàng)目依賴和代碼示例匹配正確的庫版本。對(duì)于Element Plus,請(qǐng)遵循最新的API和最佳實(shí)踐。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue3.2?reactive函數(shù)問題小結(jié)
reactive用來包裝一個(gè)對(duì)象,使其每個(gè)對(duì)象屬性都具有響應(yīng)性(也就是深層次響應(yīng)式),這篇文章主要介紹了vue3.2?reactive函數(shù)注意點(diǎn)及問題小結(jié),需要的朋友可以參考下2022-12-12
在vue3中使用el-tree-select實(shí)現(xiàn)樹形下拉選擇器效果
el-tree-select是一個(gè)含有下拉菜單的樹形選擇器,結(jié)合了?el-tree?和?el-select?兩個(gè)組件的功能,這篇文章主要介紹了在vue3中使用el-tree-select做一個(gè)樹形下拉選擇器,需要的朋友可以參考下2024-03-03
vue-router的beforeRouteUpdate不觸發(fā)問題
這篇文章主要介紹了vue-router的beforeRouteUpdate不觸發(fā)問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
vue的列表交錯(cuò)過渡實(shí)現(xiàn)代碼示例
這篇文章主要介紹了vue的列表交錯(cuò)過渡實(shí)現(xiàn)代碼示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
vue項(xiàng)目實(shí)現(xiàn)文件下載進(jìn)度條功能
這篇文章主要介紹了vue項(xiàng)目實(shí)現(xiàn)文件下載進(jìn)度條功能,本文通過具體實(shí)現(xiàn)代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09

