成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Vue 的 style 加了 scoped,居然也會樣式沖突?

開發 前端
為什么開發環境不把文件內容加入計算呢?我想應該是因為開發階段文件內容變化的比較頻繁,所以如果把文件內容加入計算的話,勢必會造成構建時間的加長。

前言

大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎是進階的前提是我的初心!

太細了!

最近在看一篇微前端的文章的時候,看到了這么一個評論,瞬間引起了我的求知欲,這個評論是這樣的。

圖片圖片

可能有些人不知道微前端是啥,也不知道 主應用 和 子應用 是啥,我畫一個圖給大加簡單展示一下吧::

圖片圖片

在這里再說一下 vue 文件的 scoped style 是怎么做到樣式隔離的,其實就是 vue解析器 在解析 vue 文件的時候,會通過內部的一種計算方法(怎么算的后面會說),給每一個 vue 文件的 html 標簽加上 data-v-xxx 這樣的屬性,接著通過 屬性選擇器 ,來進行樣式隔離,也叫樣式模塊化

圖片圖片

圖片圖片

圖片圖片

回到剛剛那個問題,微前端項目中的 主項目 和 子項目 由于存在了相同相對路徑的 vue 文件,導致了兩個項目的兩個 vue 文件的樣式產生了沖突~

所以,我們可以初步知道了,data-v-xxx這個屬性是根據 vue文件相對路徑去計算出來的。但這也只是初步而已,具體我們還得去看一下源碼才行,這樣才能鍛煉我們解決問題的能力~

Vue2 和 Vue3 的計算方式大差不差

簡單看源碼

先來看看 Webpack + vue-loader 對 Vue2 是怎么處理的,源碼鏈接:https://github.com/vuejs/vue-loader/blob/8357e071c45e77de0889a9feedf2079a327f69d4/src/index.ts#L142

圖片圖片

再來看看 vite + @vitejs/plugin-vue 對于 Vue3是怎么處理的,源碼鏈接:https://github.com/vitejs/vite-plugin-vue/blob/main/packages/plugin-vue/src/utils/descriptorCache.ts

圖片圖片

開發環境 & 生產環境

其實兩種的解析方式大差不差,總結為以下:

  • 開發環境: 根據文件的相對路徑進行計算data-v-xxx
  • 生產環境: 根據與文件的相對路徑 + 文件內容進行計算 data-v-xxx

所以可以看出在開發環境和生產環境的時候,都有可能兩個 vue 文件的 scoped style 樣式發生沖,雖然這只是比較邊界的情況~

為什么開發環境不把文件內容加入計算呢?我想應該是因為開發階段文件內容變化的比較頻繁,所以如果把文件內容加入計算的話,勢必會造成構建時間的加長。

如何防樣式沖突?

雖然 scoped style 發生樣式沖突只是小概率事件,但是我們也得思考一下怎么去避免呢?

掘金有一個大佬,給 Vue 官方提了一個 PR,就是在計算 data-v-xxx的時候,加入 package.json 的 name進行計算,也就是項目名,這樣能防止兩個不同項目之間的樣式沖突~

大佬牛啊!!!

圖片 圖片

責任編輯:武曉燕 來源: 前端之神
相關推薦

2024-03-22 12:22:50

Vue前端

2024-01-04 08:49:03

Vuescope限制

2020-10-22 08:50:04

Cascading S

2021-06-09 18:21:20

語法PHP8 \Match

2024-06-27 09:24:55

2022-01-07 09:50:51

大數據信息應用

2023-01-03 11:22:23

C#代碼SQL Server

2023-08-11 17:42:35

ChatGPT人工智能

2021-12-28 08:17:41

循環 forgo

2010-09-14 15:04:42

list-styleCSS

2018-08-03 13:06:16

騰訊Facebook社交

2022-08-02 13:32:24

Linux瀏覽器代碼

2009-03-12 09:51:51

職場老板辦公桌

2022-05-13 21:20:23

組件庫樣式選擇器

2022-06-30 12:43:08

寬帶無線接入FWA

2016-07-27 17:16:34

大數據媒體

2022-08-17 08:17:01

SPI機制接口

2010-03-23 16:26:32

無線網卡設備

2016-03-01 14:31:19

漏洞iOS設備安全

2020-10-23 08:51:55

CSS
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久这里只有精品首页 | 精品av天堂毛片久久久借种 | 91精品国产综合久久婷婷香蕉 | 欧美在线视频一区二区 | 国产伦精品一区二区三区高清 | 成人小视频在线免费观看 | 国产精品不卡 | 在线观看中文字幕dvd播放 | 国产成人精品一区二区三区在线 | 日本不卡免费新一二三区 | 国产一区二区久久久 | 欧美白人做受xxxx视频 | 欧美视频精品 | 国内精品久久精品 | www.久 | 红桃成人在线 | 亚洲国产精品suv | 日韩中文字幕视频在线观看 | 在线91 | 91精品久久久 | 国产久视频 | 亚洲播放一区 | 亚洲免费在线观看 | 999久久久精品 | 天天搞天天操 | 久久综合九九 | 国产精品久久久久久福利一牛影视 | 成人黄色在线观看 | 亚洲一区二区三区欧美 | 亚洲精品无 | 亚洲一区中文字幕在线观看 | 黄色一级片在线播放 | 久久久高清 | 粉嫩一区二区三区性色av | 中文字幕精品视频 | 爱草视频 | 日韩欧美久久精品 | 欧美一级毛片久久99精品蜜桃 | 一区二区三区在线观看免费视频 | av在线黄 | 日本一区二区三区精品视频 |