Vue中的scoped實現原理

2022-09-14 01:36:06 字數 896 閱讀 4403

何為scoped?

在vue檔案中的style標籤上,有乙個特殊的屬性:scoped。當乙個style標籤擁有scoped屬性時,它的css樣式就只能作用於當前的元件,也就是說,該樣式只能適用於當前元件元素。通過該屬性,可以使得元件之間的樣式不互相汙染。如果乙個專案中的所有style標籤全部加上了scoped,相當於實現了樣式的模組化。

scoped的實現原理

vue中的scoped屬性的效果主要通過postcss轉譯實現,如下是轉譯前的vue**:

<

style

scoped

>

.example

style

>

<

template

>

<

div

class

="example"

>hi

div>

template

>

轉義後:

<

style

>

.example[data-v-5558831a]

style

>

<

template

>

<

div

class

="example"

data-v-5558831a

>hi

div>

template

>

即:postcss給乙個元件中的所有dom新增了乙個獨一無二的動態屬性,然後,給css選擇器額外新增乙個對應的屬性選擇器來選擇該元件中dom,這種做法使得樣式只作用於含有該屬性的dom——元件內部dom。

vue中scoped的原理

實現元件的私有化,不對全域性造成樣式汙染,表示當前style屬性只屬於當前模 塊 實現原理 通過觀察dom結構可以發現 vue通過在dom結構以及css樣式上加上唯一的標記,保證唯一,達到樣式私有化,不汙染全域性的作用,如圖,樣式屬性上也會多乙個該字元,以保證唯一 可以看出加上scoped後的元件裡...

vue 中 scoped 的原理

之前寫vue頁面的時候,使用的是 快捷方式,打出vue之後使用tab鍵,就可以快捷的建立出vue頁面的template,script和style,之前一直有注意到style中有乙個scoped的屬性,但是一直不知道是幹啥的。今天乙個前輩給我講了,所以記錄下來,以供日後複習。實現組建的私有化,不對全域...

Vue中的scoped和scoped穿透

文章摘自 一 什麼是scoped 在vue檔案中的style標籤上有乙個特殊的屬性 scoped。當乙個style標籤擁有scoped屬性時候,它的css樣式只能用於當前的vue元件,可以使元件的樣式不相互汙染。如果乙個專案的所有style標籤都加上了scoped屬性,相當於實現了樣式的模組化。二 ...