亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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)建的響應(yīng)式變量,用于存儲對 el-table 元素的引用。

結(jié)果顯示

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

相關(guān)文章

  • vuex與map映射實現(xiàn)方法梳理分析

    vuex與map映射實現(xiàn)方法梳理分析

    Vuex中的映射允許您將state中的任何屬性(state、getter、mutation和action)綁定到組件中的計算屬性,并直接使用state中的數(shù)據(jù),下面我們來詳細了解
    2022-09-09
  • vue前端實現(xiàn)驗證碼登錄功能

    vue前端實現(xiàn)驗證碼登錄功能

    這篇文章主要介紹了vue前端實現(xiàn)驗證碼登錄功能,登錄時圖形驗證通過三種方法結(jié)合實例代碼給大家講解的非常詳細, 通過實例代碼介紹了vue登錄時圖形驗證碼功能的實現(xiàn),感興趣的朋友一起看看吧
    2023-12-12
  • Vue.js?模板語法和數(shù)據(jù)綁定

    Vue.js?模板語法和數(shù)據(jù)綁定

    這篇文章主要介紹了Vue.js?模板語法和數(shù)據(jù)綁定,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • 詳解Vue中狀態(tài)管理Vuex

    詳解Vue中狀態(tài)管理Vuex

    vuex是一個專門為vue.js設(shè)計的狀態(tài)管理模式,并且也可以使用devtools進行調(diào)試。
    2017-05-05
  • vue動態(tài)添加背景圖簡單示例

    vue動態(tài)添加背景圖簡單示例

    這篇文章主要給大家介紹了關(guān)于vue動態(tài)添加背景圖的相關(guān)資料,在一些場景下我們需要使用戶可以進行自定義背景圖片,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • vue + node如何通過一個Txt文件批量生成MP3并壓縮成Zip

    vue + node如何通過一個Txt文件批量生成MP3并壓縮成Zip

    這篇文章主要介紹了vue + node如何通過一個Txt文件批量生成MP3并壓縮成Zip的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Vue數(shù)據(jù)回顯表單無法編輯的解決方案

    Vue數(shù)據(jù)回顯表單無法編輯的解決方案

    這篇文章主要介紹了Vue數(shù)據(jù)回顯表單無法編輯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Vue 3 + Element Plus樹形表格全選多選及子節(jié)點勾選的問題解決方法

    Vue 3 + Element Plus樹形表格全選多選及子節(jié)點勾選的問題解決方

    在本文中,我們解決了Vue 3和Element Plus樹形表格中的全選、多選、子節(jié)點勾選和父節(jié)點勾選等常見問題,通過逐步實現(xiàn)這些功能,您可以構(gòu)建功能強大且用戶友好的樹形表格組件,以滿足各種數(shù)據(jù)展示需求,對Vue 3 Element Plus樹形表格相關(guān)知識感興趣的朋友一起看看吧
    2023-12-12
  • 基于vuejs實現(xiàn)一個todolist項目

    基于vuejs實現(xiàn)一個todolist項目

    這篇文章主要為大家詳細介紹了基于vuejs實現(xiàn)一個todolist項目,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • vue前端頁面數(shù)據(jù)加載添加loading效果的實現(xiàn)

    vue前端頁面數(shù)據(jù)加載添加loading效果的實現(xiàn)

    這篇文章主要介紹了vue前端頁面數(shù)據(jù)加載添加loading效果的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07

最新評論