當 <style>
標籤有 scoped
屬性時,至關於在元素中添加了一個惟一屬性用來區分。css
<style scoped> .example { color: red; } </style> <template> <div class="example">hi</div> </template>
它經過使用 PostCSS 來實現如下轉換,轉換結果:html
<style> .example[data-v-f3f3eg9] { color: red; } </style> <template> <div class="example" data-v-f3f3eg9>hi</div> </template>
經過給樣式名加hash字符串後綴的方式,實現特定做用域語境中的樣式編譯後的樣式在全局惟一。vue
<template> <p :class="$style.gray"> Im gray </p> </template> <style module> .gray { color: gray; } </style>
使用module的結果編譯以下:ide
<p class="gray_3FI3s6uz">Im gray</p> .gray_3FI3s6uz { color: gray; }
因而可知,css module直接替換了類名,排除了用戶設置類名影響組件樣式的可能性。ui
推薦使用CSS Modulesspa
詳細見官方文檔:https://vue-loader.vuejs.org/zh/guide/scoped-css.html#混用本地和全局樣式code