Vue 组件的<style>标签上 添加的scoped属性

Vue.js中scoped属性的作用与样式隔离机制
一、scoped的作用

1.限制样式的作用域,只在当前的页面组件有效。

2.避免样式污染,影响到其他组件。

3.开发过程中,样式冲突可能会是一个大问题,合理使用全局css。

二、用法举例
<script setup name="" lang="ts">
</script>
<style lang="scss" scoped>
.search-fix {
  display: flex;
  justify-content: space-around;
}
</style>
三、样式隔离机制

实现原理是什么?是怎么做到隔离的?

当在 Vue 组件的<style>标签上添加scoped属性后,Vue.js 在编译组件时,会为每个组件的元素添加一个唯一的数据属性(例如data-v-[hash],其中hash是一个生成的唯一哈希值)。对于带有scoped属性的<style>标签中的 CSS 选择器,会自动添加这个数据属性选择器来限制样式的作用域。

举例:编译后的 控制台元素截图

编译打包后的 .css文件

根据这个唯一hash值,我们能够知道页面的层级结构,哪些是属于一个组件的,哪些是多个组件嵌套的。

新创建了前端公众号,【码农生存指南】
欢迎同行互关交流!关注后私信我返关~

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值