真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Ref操作Dom在Vue2.x和Vue3.x的不同點有哪些

本篇內(nèi)容介紹了“Ref操作Dom在Vue2.x和Vue3.x的不同點有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于成都網(wǎng)站設計、成都網(wǎng)站制作、潛山網(wǎng)絡推廣、微信平臺小程序開發(fā)、潛山網(wǎng)絡營銷、潛山企業(yè)策劃、潛山品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供潛山建站搭建服務,24小時服務熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com

在開發(fā)一個項目之前,我們往往都是先做下需求分析,針對前端而言,就是可以調(diào)研或者選擇一個基礎組件庫,來提高我們的工作效率。畢竟,對比較計較時間成本的公司來說,不會給你拿看電視劇玩游戲的時間去專門開發(fā)一個類似日歷的組件。但在市面上的組件庫,并不能都能滿足我們的需求。這個時候,我們就需要自己手寫組件,來應用到項目中。

而這就是我想說的: 如何設計組件,讓其既能易于應用(或者說減少代碼量),又能提高擴展性,方便需求變更和后續(xù)維護?

可以有很多種方式,而利用Ref操作Dom的特性隨是其中之一,但這個方式卻讓我們在維護和操作Modal、Popup以及頻繁操作Dom顯示和隱藏交互的組件的時候,卻發(fā)揮得很大優(yōu)勢。

就對Ref操作Dom的相關知識點以及應用實例分幾個方面來做下剖析

  • Ref獲取Dom的本質(zhì)

  • Ref操作Dom在Vue2.x和Vue3.x的不同

  • Ref操作組件Dom和父子組件單向傳遞對比

詳說

Ref獲取Dom的本質(zhì)

Vue2.x中Vue的對象屬性$refs,其實就是所有注冊過的ref的一個集合,而ref對應著template模版中,不同組件或普通Dom元素上關聯(lián)的ref="xx"; 源碼中ref的實際獲取方式也是通過原生方式getElementById而得到的Dom節(jié)點;可以說ref是document.getElementById的語法糖。vue3的ref延續(xù)了vue2的用法,還增加了一個作用就是創(chuàng)建響應式數(shù)據(jù)

也許有人會問了,既然ref和getElementById都能獲取到Dom,那么在項目開發(fā)中,我選擇哪種方式都沒什么區(qū)別呢?

關于這個問題,經(jīng)過數(shù)據(jù)表明,$refs相對document.getElementById的方法,會減少獲取dom節(jié)點的消耗;而具體原因,等下一篇文章再詳細探討。

Ref操作Dom在Vue2.x和Vue3.x的不同

Vue2.x

我們只需要在相應的Dom元素或者組件加上ref="xx"屬性,然后在Vue對象中使用this.$refs.xx,就可以直接獲取到該Dom并操作其方法屬性,


或者
dd
// $refs
showManagerModal () {
  this.$refs.avaUserTreeSelect.showModal(this.form.managers)
  console.log(this.$refs.user.text)
},

Vue3.2

在Vue3.2版本使用的方式

//普通Dom
//組件

import { ref } from 'vue';
// modal調(diào)整部門彈層Dom
const batchAdjustDepartmentRef = ref(null);
const user = ref(null);

也許這里有人疑問,為什么聲明了一個和template的ref中同名的常量變量就綁定了對應的dom? 在這里再補充說明一下: