欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue3?setup中使用$refs的方法詳解

 更新時間:2023年08月17日 11:45:20   作者:瑾修  
在?Vue?3?中的?Composition?API?中,$refs?并不直接可用于?setup?函數(shù),但是實際工作中確實有需求,那么該如何解決呢,本文為大家整理了兩個方案,希望對大家有所幫助

在 Vue 3 中的 Composition API 中, $refs 并不直接可用于 setup 函數(shù)。這是因為 $refs 是 Vue 2 的實例屬性,而在 Vue 3 中, setup 函數(shù)是與模板實例分離的,不再使用實例屬性。

實際工作中確實有需求,在 setup 函數(shù)使用$refs,下面有兩種方法。

方案

方案一:getCurrentInstance

<template>
    <el-table ref="multipleTableRef" :data="tableData" style="width: 100%" @selection-change="handleSelectionChange">
        <el-table-column type="selection" width="55" />
        <el-table-column label="Date" width="120">
            <template #default="scope">{{ scope.row.date }}</template>
        </el-table-column>
        <el-table-column property="name" label="Name" width="120" />
        <el-table-column property="address" label="Address" show-overflow-tooltip />
    </el-table>
    <div style="margin-top: 20px">
        <el-button @click="toggleSelection([tableData[1], tableData[2]])">Toggle selection status of second and third
            rows</el-button>
        <el-button @click="toggleSelection()">Clear selection</el-button>
    </div>
</template>
<script setup>
import { ref, getCurrentInstance } from 'vue'
const tableData = [
    {
        date: '2016-05-03',
        name: 'Tom',
        address: 'No. 189, Grove St, Los Angeles',
    },
    {
        date: '2016-05-02',
        name: 'Tom',
        address: 'No. 189, Grove St, Los Angeles',
    },
    {
        date: '2016-05-04',
        name: 'Tom',
        address: 'No. 189, Grove St, Los Angeles',
    },
    {
        date: '2016-05-01',
        name: 'Tom',
        address: 'No. 189, Grove St, Los Angeles',
    },
    {
        date: '2016-05-08',
        name: 'Tom',
        address: 'No. 189, Grove St, Los Angeles',
    },
    {
        date: '2016-05-06',
        name: 'Tom',
        address: 'No. 189, Grove St, Los Angeles',
    },
    {
        date: '2016-05-07',
        name: 'Tom',
        address: 'No. 189, Grove St, Los Angeles',
    },
]
const multipleSelection = ref([])
const handleSelectionChange = (val) => {
    multipleSelection.value = val
}
const {proxy} = getCurrentInstance();
const toggleSelection = (rows) => {
    if (rows) {
        rows.forEach((row) => {
            proxy.$refs.multipleTableRef.toggleRowSelection(row, undefined)
        })
    } else {
        proxy.$refs.multipleTableRef.clearSelection()
    }
}
</script>

方案二: ref

<template>
    <el-table ref="multipleTableRef" :data="tableData" style="width: 100%" @selection-change="handleSelectionChange">
        <el-table-column type="selection" width="55" />
        <el-table-column label="Date" width="120">
            <template #default="scope">{{ scope.row.date }}</template>
        </el-table-column>
        <el-table-column property="name" label="Name" width="120" />
        <el-table-column property="address" label="Address" show-overflow-tooltip />
    </el-table>
    <div style="margin-top: 20px">
        <el-button @click="toggleSelection([tableData[1], tableData[2]])">Toggle selection status of second and third
            rows</el-button>
        <el-button @click="toggleSelection()">Clear selection</el-button>
    </div>
</template>
<script setup>
import { ref } from 'vue'
const tableData = [
    {
        date: '2016-05-03',
        name: 'Tom',
        address: 'No. 189, Grove St, Los Angeles',
    },
    {
        date: '2016-05-02',
        name: 'Tom',
        address: 'No. 189, Grove St, Los Angeles',
    },
    {
        date: '2016-05-04',
        name: 'Tom',
        address: 'No. 189, Grove St, Los Angeles',
    },
    {
        date: '2016-05-01',
        name: 'Tom',
        address: 'No. 189, Grove St, Los Angeles',
    },
    {
        date: '2016-05-08',
        name: 'Tom',
        address: 'No. 189, Grove St, Los Angeles',
    },
    {
        date: '2016-05-06',
        name: 'Tom',
        address: 'No. 189, Grove St, Los Angeles',
    },
    {
        date: '2016-05-07',
        name: 'Tom',
        address: 'No. 189, Grove St, Los Angeles',
    },
]
const multipleTableRef = ref()
const multipleSelection = ref([])
const handleSelectionChange = (val) => {
    multipleSelection.value = val
}
const toggleSelection = (rows) => {
    if (rows) {
        rows.forEach((row) => {
            multipleTableRef.value.toggleRowSelection(row, undefined)
        })
    } else {
        multipleTableRef.value.clearSelection()
    }
}
</script>

在這個示例中,multipleTableRef 是一個通過 ref 創(chuàng)建的響應式變量,用于存儲對 el-table 元素的引用。

結(jié)果顯示

到此這篇關于Vue3 setup中使用$refs的方法詳解的文章就介紹到這了,更多相關Vue3 setup內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • vue+php實現(xiàn)的微博留言功能示例

    vue+php實現(xiàn)的微博留言功能示例

    這篇文章主要介紹了vue+php實現(xiàn)的微博留言功能,結(jié)合完整實例形式分析了vue.js前臺留言及后臺php交互功能相關操作技巧,需要的朋友可以參考下
    2019-03-03
  • 快速修改antd?vue單個組件的默認樣式

    快速修改antd?vue單個組件的默認樣式

    這篇文章主要介紹了快速修改antd?vue單個組件的默認樣式方式,具有很好的參考價值,希望對大家有所幫助。
    2022-08-08
  • el-tree樹設置懶加載以及設置默認勾選方式

    el-tree樹設置懶加載以及設置默認勾選方式

    這篇文章主要介紹了el-tree樹設置懶加載以及設置默認勾選方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vue前端實現(xiàn)dhtmlxgantt甘特圖代碼示例(個人需求)

    vue前端實現(xiàn)dhtmlxgantt甘特圖代碼示例(個人需求)

    這篇文章主要介紹了如何使用dhtmlx-gantt和chinese-days插件在項目中實現(xiàn)節(jié)假日置灰顯示的功能,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-03-03
  • vue自定義底部導航欄Tabbar的實現(xiàn)代碼

    vue自定義底部導航欄Tabbar的實現(xiàn)代碼

    這篇文章主要介紹了vue自定義底部導航欄Tabbar的實現(xiàn)代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • 一文帶你了解threejs在vue項目中的基本使用

    一文帶你了解threejs在vue項目中的基本使用

    three.js是一個用于在Web上創(chuàng)建三維圖形的JavaScript庫,它可以用于創(chuàng)建各種類型的三維場景,包括游戲、虛擬現(xiàn)實、建筑和產(chǎn)品可視化等,下面這篇文章主要給大家介紹了關于如何通過一文帶你了解threejs在vue項目中的基本使用,需要的朋友可以參考下
    2023-04-04
  • 使用websocket和Vue2中的props實時更新數(shù)據(jù)方式

    使用websocket和Vue2中的props實時更新數(shù)據(jù)方式

    這篇文章主要介紹了使用websocket和Vue2中的props實時更新數(shù)據(jù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • vue2中Print.js的使用超詳細講解(pdf、html、json、image)

    vue2中Print.js的使用超詳細講解(pdf、html、json、image)

    項目中有用到打印功能,網(wǎng)上就找了print.js,下面這篇文章主要給大家介紹了關于vue2中Print.js使用(pdf、html、json、image)的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-03-03
  • vue實現(xiàn)下拉菜單效果

    vue實現(xiàn)下拉菜單效果

    這篇文章主要為大家詳細介紹了vue實現(xiàn)下拉菜單效果,運用了hover顯示與隱藏以及定位,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • vue-router中關于children的使用方法

    vue-router中關于children的使用方法

    這篇文章主要介紹了vue-router中關于children的使用方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08

最新評論