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

Vue透傳Attributes使用解析

 更新時間:2023年02月01日 10:35:47   作者:前端、老六  
本文主要介紹了Vue透傳Attributes使用解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

透傳是vue中一種特性,官方的解釋是:“透傳 attribute”指的是傳遞給一個組件,卻沒有被該組件聲明為 props emits 的 attribute 或者 v-on 事件監(jiān)聽器。最常見的例子就是 class、styleid。這句話解釋過來就是一些不被prop定義的屬性直接添加到子組件上的時候,子組件是可以獲取到的,只不過獲取的方式是通過方法獲取的,下面我們展開說一下

幾個特性:

  • 透傳的屬性只會直接傳給單根節(jié)點的組件,如果子組件不是一個根節(jié)點,那么透傳屬性會直接失效,并且警告
  • 子節(jié)點如果不是單根節(jié)點的時候,可以通過添加v-bind=“$attrs” 的屬性進行某一個dom元素的透傳
  • 透傳過去的屬性如果和子組件上的命名重復了,會以子組件本身的屬性為主
  • 透傳過去的屬性如果和子組件上的屬性重復了,會直接添加到屬性值的后面
  • 透傳的子組件里面如果只有一個根節(jié)點,這個根節(jié)點是另一個組件的時候,透傳的屬性會直接傳遞給他本身的子組件
  • 透傳過去的屬性ID獲取需要在dom節(jié)點加載結(jié)束進行,否則是獲取不到的

以上特性我們挨個說一下

透傳的屬性只會直接傳給單根節(jié)點的組件 子組件attrs

父組件

這個時候效果是沒問題的,但是如果我們給子組件添加一個節(jié)點

這個時候self-btn的樣式并沒有傳遞出去,因為和這個時候他并不知道要傳遞給哪一個dom元素,同時會曝這樣一條警告

子節(jié)點如果不是單根節(jié)點的時候,可以通過添加v-bind=“$attrs” 的屬性進行某一個dom元素的透傳

這個時候我們給其中一個添加上v-bind="$attrs"屬性

此時的警告也沒有了,通過這樣的方式我們可以進行自己決定透傳給哪一個dom元素

透傳過去的屬性如果和子組件上的命名重復了,會以子組件本身的屬性為主 透傳過去的屬性如果和子組件上的屬性重復了,會直接添加到屬性值的后面

這兩個通過上面的例子相信你們已經(jīng)看出來了,這里就不做演示了

透傳的子組件里面如果只有一個根節(jié)點,這個根節(jié)點是另一個組件的時候,透傳的屬性會直接傳遞給他本身的子組件

我們在子組件中再引入另一個組件進行嘗試 : deepAttrs

透傳過去的屬性ID獲取需要在dom節(jié)點加載結(jié)束進行,否則是獲取不到的

既然可以透傳屬性,那么我們傳遞過去的ref和id理論上也是可以直接被獲取到的,代碼嘗試一下

可以看到上面打印的結(jié)果是可以獲取到的,但是如果是直接獲取的話,dom元素是null,也就是直接獲取的話,會因為dom加載順序的問題導致獲取不到最后的dom,這里需要注意一點

可能存在的疑問 如果我子組件只有一個根節(jié)點,但是我不想被透傳怎么辦呢?

如上所示,我們給js模塊部分添加 inheritAttrs:false即可,默認的值是true,設置為false的時候透傳的屬性久不存在了

我怎么在js中獲取到透傳的屬性呢?

使用useAttrs即可獲取到對應的透傳過來的屬性

如果我不適用setup的語法糖進行呢?

這里直接使用官網(wǎng)的例子給解答

以上就是關于vue中透傳的一些使用,我工作中用的說實話不太多,但是這種東西就是用不到的時候覺得沒有什么用,但是一旦用到了,就會覺得特別的實用,所以還是很有必要了解一下的,到此這篇關于Vue透傳Attributes使用解析的文章就介紹到這了,更多相關Vue透傳Attributes內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Vue渲染失敗的幾種原因及解決方案

    Vue渲染失敗的幾種原因及解決方案

    這篇文章主要介紹了Vue渲染失敗的幾種原因及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • vue如何實現(xiàn)關閉對話框后刷新列表

    vue如何實現(xiàn)關閉對話框后刷新列表

    這篇文章主要介紹了vue如何實現(xiàn)關閉對話框后刷新列表,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue中實現(xiàn)子組件接收父組件方法并獲取返回值

    vue中實現(xiàn)子組件接收父組件方法并獲取返回值

    這篇文章主要介紹了vue中實現(xiàn)子組件接收父組件方法并獲取返回值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 如何使用JS監(jiān)聽一個變量改變

    如何使用JS監(jiān)聽一個變量改變

    在JS編程中如果能監(jiān)測變量的內(nèi)容,當變量值發(fā)生變化時,實時發(fā)出通知,這定是一項很有用的功能,下面這篇文章主要給大家介紹了關于如何使用JS監(jiān)聽一個變量改變的相關資料,需要的朋友可以參考下
    2023-05-05
  • 如何在 Vue 中使用 JSX

    如何在 Vue 中使用 JSX

    這篇文章主要介紹了如何在 Vue 中使用 JSX,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下
    2021-02-02
  • vue-cli3.0+element-ui上傳組件el-upload的使用

    vue-cli3.0+element-ui上傳組件el-upload的使用

    這篇文章主要介紹了vue-cli3.0+element-ui上傳組件el-upload的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • Vue中事件總線(eventBus)的深入詳解及使用

    Vue中事件總線(eventBus)的深入詳解及使用

    在vue項目中父子組件間的通訊很方便,但兄弟組件或多層嵌套組件間的通訊,就會比較麻煩,這時使用eventBus通訊,就可以很便捷的解決這個問題,這篇文章主要給大家介紹了關于Vue中事件總線(eventBus)使用的相關資料,需要的朋友可以參考下
    2022-03-03
  • vue如何引入sass全局變量

    vue如何引入sass全局變量

    sass或者less都提供變量設置,在需求切換主題的項目中使用less或者sass變量,這篇文章主要介紹了vue引入sass全局變量,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • 如何理解Vue的作用域插槽的實現(xiàn)原理

    如何理解Vue的作用域插槽的實現(xiàn)原理

    本篇文章主要介紹了如何理解Vue的作用域插槽的實現(xiàn)原理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • vue實現(xiàn)網(wǎng)頁語言國際化切換

    vue實現(xiàn)網(wǎng)頁語言國際化切換

    這篇文章介紹了vue實現(xiàn)網(wǎng)頁語言國際化切換的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-11-11

最新評論