记一次 vue中style学习

本文探讨了在Vue组件中如何避免全局样式污染,重点介绍了`scoped`属性的工作原理及其对子组件的影响。文章详细讲解了Vue在编译打包时如何处理局部CSS,并提出了解决样式修改难题的方法,如使用深度作用选择器`/deep/`或`>>>`。此外,还提及了不同预处理器(SCSS、SASS、CSS)中应用深度选择器的语法差异,并提出了通过添加特定类名来规避样式冲突的策略。
摘要由CSDN通过智能技术生成

为了避免全局组件之间的样式污染

1,<style>标签加上一个scoped属性

Vue 对 scoped的渲染规则

  • 对于所有的 Vue 组件,只要设置了<style scoped></style>,Vue就会给该组件生成一个唯一data值。
  • Vue 会将data值作为一个属性添加到组件内所有HTML的DOM节点
  • 如果组件内部包含子组件,这有两种情况
    • 情况一:子组件没有设置<style scoped></style>,则只会给子组件的最外层标签加上当前组件的data属性
    • 情况二:子组件设置了<style scoped></style>,则子组件会自动生成一个自己的唯一data值,然后子组件最外层标签在自己的data属性后面添加父组件的data属性。
  • 对于组件内写在<style scoped></style>里的样式,Vue均会自动在每句css选择器的末尾添加一个当前组件的data属性选择器来私有化样式。

所谓的局部css,就是通过vue-loader这个插件,在编译打包的时候将带有scoped属性的css打上一个tag,同时将template内的所有html都打上一个相同的tag,最后通过css的属性选择器定位,造就了所谓的局部css

引入了新的问题—样式不易(可ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值