在typeScript+vue項目中使用ref


因為vue項目是無法直接操作dom的,但是有時候開發需求迫使我們去操作dom。

兩個辦法,一個是很low的再引入jq,然后通過jq來操作,但是這樣就失去了我們使用vue的意義, 可惜的是我曾經這樣干過,而且當時覺得我就是個天才。

另一個就是添加ref屬性,對ref進行操作。

好了完美解決。

很不巧,新項目用的是vue還是vue+typeScript的,直接,單純的this.$refs.xxx不好用了,報錯,識別不了,很尷尬。

經過不懈努力終於找到了在typeScript+vue(不要在意這兩個前后順序,是哪個意思就行)項目中使用ref的解決辦法(typeScript項目中能使用JQ嗎?):

添加一個聲明類型,例如:

this.$refs.ceshiREF as HTMLAudioElement
這樣是不報錯了,但是打印的結果卻是undefined,有點不講道理的感覺。
后來在一片博客中發現ref不是響應式的,無法對添加了if的進行反應,而我不巧就添加在了有if判斷的標簽上面。
此外ref必須要數據渲染之后才能獲取到,一般在mounted中。
而且也並不是像上面說的那樣需要聲明一個類型,而是需要聲明一個變量:
let el:any = this.$refs.ceshi;
console.log(el)
這樣就好了,我喜歡這樣,因為非常簡單我可以理解。
 
 
另:百度和谷歌搜索出來的內容真心一個天一個地。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM