专栏名称: 前端从进阶到入院
我是 ssh,只想用最简单的方式把原理讲明白。wx:sshsunlight,分享前端的前沿趋势和一些有趣的事情。
今天看啥  ›  专栏  ›  前端从进阶到入院

Vue3 scoped 隔离样式的秘密……

前端从进阶到入院  · 公众号  ·  · 2024-06-28 09:00

文章预览

前言 众所周知,在vue中使用scoped可以避免父组件的样式渗透到子组件中。使用了scoped后会给html增加自定义属性 data-v-x ,同时会给组件内CSS选择器添加对应的属性选择器 [data-v-x] 。这篇我们来讲讲vue是如何给CSS选择器添加对应的属性选择器 [data-v-x] 。注:本文中使用的vue版本为 3.4.19 , @vitejs/plugin-vue 的版本为 5.0.4 。 看个demo 我们先来看个demo,代码如下:    "block">hello world
.block {
  color: red;
}
经过编译后,上面的demo代码就会变成下面这样:    "block">hello world
.block[data-v-c1c19b25] {
  color: red;
}
从上面的代码可以看到在div上多了一个 data-v-c1c19b25 自定义属性,并且css的属性选择器上面也多了一个 [data-v-c1c19b25] 。 可能有的小伙伴有疑问,为什么生成这样的代码就可以避免样式污染呢? .block[data-v-c1c19b25] :这 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览