Vue 中的 Scoped Styles 通过 PostCSS 插件在编译阶段对 CSS 进行特殊处理,实现组件级样式隔离。其核心原理是为每个组件的样式和 HTML 元素添加唯一标识属性,从而限制 CSS 的作用范围。以下是具体实现步骤和原理:
一、实现步骤
1. 为组件模板添加唯一属性
- 编译时:Vue Loader 会在组件模板中的每个 HTML 元素上添加一个唯一的
data-v-xxxxxx
属性(如 data-v-f3f3eg9
),xxxxxx
是基于组件文件路径生成的哈希值。
<template>
<