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

詳解vue 中 scoped 樣式作用域的規(guī)則

 更新時間:2020年09月14日 09:25:34   作者:木瓜太香  
這篇文章主要介紹了vue 中 scoped 樣式作用域的規(guī)則,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

哈嘍!大家好!我是木瓜太香,今天我們來聊一個 vue 的樣式作用域的問題,通常我們開發(fā)項目的時候是要在 style 上加上 scoped 來起到規(guī)定組件作用域的效果的,所以了解他們的規(guī)則也是很有必要的,可以讓你更清晰的了解你的項目樣式是怎么運作的。

先來說說實現(xiàn)方式

vue中的樣式作用域是通過屬性選擇器來實現(xiàn)的,例如同樣一個類名,我們是通過 .類名[屬性名] 來做區(qū)分的,我們這里主要是要搞清楚這里的屬性名是怎么分配的。

樣式作用域規(guī)則

接下來我們分情況來說一下樣式作用域:

對于有樣式作用域的組件,該組件的所有后代元素都會具備一個相同的作用域屬性,而該組件的內部的根元素除了具備當前組件作用域屬性也會具備其父級組件的作用域,當然如果父級沒有作用域則不具備對于沒有樣式作用域的組件,如果父組件是有作用域的,那么該組件只有根元素會繼承父組價的作用域,其后代的元素不會有作用域對于處在同一層次的組件,其作用域是相同的,從下一代開始才會有所區(qū)別特別要注意的是對于組件的復用,在當前項目,不管是什么層級,復用的組件作用域都相同

樣式作用域圖示

實際應用效果

有了基本的樣式作用域知識儲備之后,接下來我們來看一下 vue 最終會怎么將這些樣式作用域應用到選擇器的。

對于單個的選擇器 .box[data-v-abc] 對于復合選擇器:.box a[data-v-abc] .box[data-v-abc],.wrap[data-v-abc] .box > div[data-v-abc]

根據(jù)上面的知識儲備,我們就知道,如果組件都只被引用一次,通常是不存在樣式干擾的,但是如果一個組件在一個頁面中復用多次,依然是有樣式干擾的可能。

PS:下面看下vue中scoped的原理

vue中scoped的作用:

  實現(xiàn)組件的私有化, 當前style屬性只屬于當前模塊.

  但是當我們使用公共組件的時候會造成很多困難.

scoped的實現(xiàn)原理:

  在DOM結構中可以發(fā)現(xiàn),vue通過在DOM結構以及css樣式上加了唯一標記,達到樣式私有化,不污染全局的作用,

  

  

  可以看出,加上scoped后的組件里的會多 data-v-5db9451a 屬性, css樣式中可以看出;

  1. 給DOM節(jié)點加一個不重復屬性 data-v-5db9451a 標志唯一性.

  2. 使每個樣式選擇器后添加類似于"不重復屬性"的字段, 類似于作用域的作用,不影響全局.

  3. 如果組件內部還有組件,只會給最外層的組件里的標簽加上唯一屬性字段,不影響組件內部引用的組件.

謹慎使用:

  1. 父組件無scoped屬性,子組件帶有scoped,父組件是無法操作子組件的.

  2.父組件有scoped屬性,子組件無scoped.父組件也無法設置子組件樣式.因為父組件的所有標簽都會帶有data-v-5db9451a唯一標志,但子組件不會帶有這個唯一標志屬性.

  3.父子組建都有,同理也無法設置樣式,更改起來增加代碼量.

總結

到此這篇關于vue 中 scoped 樣式作用域的規(guī)則的文章就介紹到這了,更多相關vue scoped 樣式作用域內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 淺談Vue的雙向綁定和單向數(shù)據(jù)流沖突嗎

    淺談Vue的雙向綁定和單向數(shù)據(jù)流沖突嗎

    單項數(shù)據(jù)流和雙向數(shù)據(jù)綁定的概念,這兩種不是相互沖突的嗎?即然能用v-model雙向數(shù)據(jù)綁定,不應該就是雙向數(shù)據(jù)流了嗎?本文就詳細的介紹一下
    2022-04-04
  • vue引入jq插件的實例講解

    vue引入jq插件的實例講解

    下面小編就為大家?guī)硪黄獀ue引入jq插件的實例講解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • vue-router安裝和使用詳解

    vue-router安裝和使用詳解

    vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,適合用于構建單頁面應用,分步驟介紹了安裝和使用vue-router的方法,感興趣的朋友跟隨小編一起看看吧
    2023-08-08
  • vue全局自定義指令-元素拖拽的實現(xiàn)代碼

    vue全局自定義指令-元素拖拽的實現(xiàn)代碼

    這篇文章主要介紹了面板拖拽之vue自定義指令,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • Vue3?攜手?TypeScript?搭建完整項目結構

    Vue3?攜手?TypeScript?搭建完整項目結構

    TypeScript 是JS的一個超級,主要提供了類型系統(tǒng)和對ES6的支持,使用 TypeScript 可以增加代碼的可讀性和可維護性,在 react 和 vue 社區(qū)中也越來越多人開始使用TypeScript,這篇文章主要介紹了Vue3?攜手?TypeScript?搭建完整項目結構,需要的朋友可以參考下
    2022-04-04
  • vue3+element-plus props中的變量使用 v-model 報錯及解決方案

    vue3+element-plus props中的變量使用 v-model 報錯及解決方案

    這篇文章主要介紹了vue3+element-plus props中的變量使用 v-model 報錯及解決方案,prop 是單向數(shù)據(jù)流,這里只能用:model-value,不能用v-model,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2023-10-10
  • 淺析從面向對象思維理解Vue組件

    淺析從面向對象思維理解Vue組件

    用面向對象的思維去理解Vue組件,可以將所有的事物都抽象為對象,而類或者說是組件,都具有屬性和操作。這篇文章主要介紹了嘗試用面向對象思維理解Vue組件,需要的朋友可以參考下
    2021-07-07
  • 解析vue.js中常用v-指令

    解析vue.js中常用v-指令

    本文以click為例給大家介紹vue.js中常用v-指令,可以用 v-on 指令監(jiān)聽 DOM 事件,并在觸發(fā)時運行一些 JavaScript代碼,本文通過示例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2021-10-10
  • Vue之計算屬性詳解

    Vue之計算屬性詳解

    這篇文章主要為大家介紹了Vue的計算屬性,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • elementUI中input回車觸發(fā)頁面刷新問題與解決方法

    elementUI中input回車觸發(fā)頁面刷新問題與解決方法

    這篇文章主要給大家介紹了關于elementUI中input回車觸發(fā)頁面刷新問題與解決方法,文中通過實例代碼介紹的非常詳細,對大家學習或者使用elementUI具有一定的參考學習價值,需要的朋友可以參考下
    2023-07-07

最新評論