vue3如何獲取綁定頁(yè)面dom元素
vue3獲取綁定頁(yè)面dom元素
和vue2一樣,vue3也可以在頁(yè)面上通過(guò)ref綁定一個(gè)變量,
<div ref="domRef"></div>
但vue2使用this.$refs可以獲取綁定的變量,而vue3雖然已經(jīng)刪除了this,但可以用以下方法綁定元素
在setup方法中使用vue提供的ref綁定元素,網(wǎng)上大部分是使用
import { onMounted, ref } from "vue"; export default{ setup() { const domRef = ref(null) onMounted(() => { console.log(domRef.value) }) retrurn { domRef } } }
其實(shí)這還有優(yōu)化的空間,我們使用vue3比較重要的是使用ts語(yǔ)法,那么怎么指定ref綁定的dom的class對(duì)象呢,
我們可以不用在ref中寫null,在ref中指定某個(gè)類的原型,那么value就是這個(gè)類的對(duì)象,
我們可以使用js本身就有的Element對(duì)象,也可以自定義一個(gè),
最終代碼如下所示:
① Ele.ts文件
用于聲明class類局部使用,也可以使用.d.ts文件直接全局聲明
export default class Ele { // eslint-disable-next-line @typescript-eslint/no-empty-function constructor() {} clientHeight!: number; clientWidth!: number; style!: { top: number | string; left: number | string; bottom: number | string; right: number | string; display: "inline-block" | "none"; }; }
② 通過(guò)Ele綁定ref
import { onMounted, ref } from "vue"; import Ele from "@/class/Ele"; export default{ setup() { const domRef = ref(Ele.prototype) onMounted(() => { const dom: Ele = domRef.value; console.log(dom) }) retrurn { domRef } } }
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue 行為驗(yàn)證碼之滑動(dòng)驗(yàn)證AJ-Captcha使用詳解
這篇文章主要介紹了vue 行為驗(yàn)證碼之滑動(dòng)驗(yàn)證AJ-Captcha使用詳解,AJ-Captcha不需要npm安裝,只需要將組件 verifition復(fù)制到所使用的components目錄下,本文給大家詳細(xì)講解,需要的朋友可以參考下2023-05-05vue webpack開(kāi)發(fā)訪問(wèn)后臺(tái)接口全局配置的方法
今天小編就為大家分享一篇vue webpack開(kāi)發(fā)訪問(wèn)后臺(tái)接口全局配置的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09vue實(shí)現(xiàn)簡(jiǎn)單轉(zhuǎn)盤抽獎(jiǎng)功能
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)簡(jiǎn)單轉(zhuǎn)盤抽獎(jiǎng)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03解決vue腳手架項(xiàng)目打包后路由視圖不顯示的問(wèn)題
今天小編就為大家分享一篇解決vue腳手架項(xiàng)目打包后路由視圖不顯示的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09