最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

樣式作用域規(guī)則

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

對于有樣式作用域的組件,該組件的所有后代元素都會具備一個相同的作用域?qū)傩?,而該組件的內(nèi)部的根元素除了具備當(dāng)前組件作用域?qū)傩砸矔邆淦涓讣壗M件的作用域,當(dāng)然如果父級沒有作用域則不具備對于沒有樣式作用域的組件,如果父組件是有作用域的,那么該組件只有根元素會繼承父組價的作用域,其后代的元素不會有作用域?qū)τ谔幵谕粚哟蔚慕M件,其作用域是相同的,從下一代開始才會有所區(qū)別特別要注意的是對于組件的復(fù)用,在當(dāng)前項目,不管是什么層級,復(fù)用的組件作用域都相同

樣式作用域圖示

實際應(yīng)用效果

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

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

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

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

vue中scoped的作用:

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

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

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

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

  

  

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

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

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

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

謹(jǐn)慎使用:

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

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

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

總結(jié)

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

相關(guān)文章

  • 詳解Vue2中組件間通信的解決全方案

    詳解Vue2中組件間通信的解決全方案

    Vue中組件這個特性讓不少前端er非常喜歡,我自己也是其中之一,它讓前端的組件式開發(fā)更加合理和簡單。下面這篇文章主要給大家介紹了關(guān)于Vue2中組件間通信的解決全方案,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面來一起看看吧。
    2017-07-07
  • vue項目打包清除console.log的四種方法總結(jié)

    vue項目打包清除console.log的四種方法總結(jié)

    大家在項目開發(fā)的時候,需要看看一些后端接口返回的結(jié)果,會多次使用console.log項目開發(fā)完成打包的時候,發(fā)現(xiàn)控制臺一堆的console.log,非常頭疼,下面這篇文章主要給大家介紹了關(guān)于vue項目打包清除console.log的四種方法,需要的朋友可以參考下
    2023-04-04
  • 解決Vue運算符報錯:Syntax Error: Unexpected token問題

    解決Vue運算符報錯:Syntax Error: Unexpected token問題

    這篇文章主要介紹了解決Vue運算符報錯:Syntax Error: Unexpected token問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 一文帶你深入理解Vue3中的emit使用

    一文帶你深入理解Vue3中的emit使用

    這篇文章主要介紹了Vue3中通過emit實現(xiàn)父子組件通信的方法,包括基礎(chǔ)概念、使用方法、配合props實現(xiàn)完整父子通信、在TypeScript中的類型推斷以及注意事項與最佳實踐,需要的朋友可以參考下
    2025-01-01
  • Vue3實現(xiàn)優(yōu)雅加載圖片的動畫效果

    Vue3實現(xiàn)優(yōu)雅加載圖片的動畫效果

    這篇文章主要為大家詳細(xì)介紹了Vue3如何實現(xiàn)加載圖片時添加一些動畫效果,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,有需要的小伙伴可以參考下
    2023-10-10
  • vue實現(xiàn)點擊復(fù)制到粘貼板

    vue實現(xiàn)點擊復(fù)制到粘貼板

    這篇文章主要為大家詳細(xì)介紹了vue實現(xiàn)點擊復(fù)制到粘貼板,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Vue 3項目如何安裝Element-Plus

    Vue 3項目如何安裝Element-Plus

    Element Plus 是一個基于 Vue 3 的現(xiàn)代前端UI框架,它旨在提升開發(fā)體驗,并為開發(fā)者提供高效、優(yōu)雅的組件,在本文中將詳細(xì)介紹如何在 Vue 3 項目中安裝 Element Plus,感興趣的朋友一起看看吧
    2024-07-07
  • vue指令以及dom操作詳解

    vue指令以及dom操作詳解

    本篇文章主要介紹了vue指令以及dom操作詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • Element-Plus之el-col與el-row快速布局

    Element-Plus之el-col與el-row快速布局

    el-col是el-row的子元素,下面這篇文章主要給大家介紹了關(guān)于Element-Plus之el-col與el-row快速布局的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • Nuxt.js結(jié)合Serverless構(gòu)建無服務(wù)器應(yīng)用

    Nuxt.js結(jié)合Serverless構(gòu)建無服務(wù)器應(yīng)用

    Nuxt.js是一個基于Vue.js的框架,結(jié)合Serverless架構(gòu),Nuxt.js可以讓你構(gòu)建高度可擴(kuò)展、成本效益高的無服務(wù)器應(yīng)用,具有一定的參考價值,感興趣的可以了解一下
    2024-08-08

最新評論

易门县| 霍城县| 武威市| 湖南省| 乐安县| 枣阳市| 饶平县| 都江堰市| 通道| 黑河市| 汶上县| 钦州市| 万山特区| 德江县| 盐边县| 凤山县| 桂平市| 恩施市| 阿城市| 夏津县| 凤城市| 大荔县| 新丰县| 高邮市| 巴楚县| 南部县| 庆元县| 高碑店市| 丹寨县| 商河县| 阿鲁科尔沁旗| 赞皇县| 涟源市| 万荣县| 双桥区| 徐水县| 荆州市| 苗栗市| 如皋市| 罗甸县| 称多县|