Vue使用@import 引入样式文件全局污染、使用scoped失效问题

本文探讨了在Vue组件中使用@import引入外部CSS时的全局污染问题,如何通过改用src引入并结合Scoped属性避免污染,并揭示了`@import`的资源请求本质。还提供了不同引入方式的正确实践和常见错误剖析。
摘要由CSDN通过智能技术生成

scoped

在组件中的style使用@import方式引入外部css,发现引入的css会污染到其他地方。即所谓的样式全局污染。不管加不加scoped都一样。

<style lang="scss" scoped>
	@import url("/style/index.scss") 
<style>

上面这种情况即时加入了scoped也无效,样式一样会污染到其他地方。

所以改写成src的方式引入。

<style lang="scss"  src="/style/index.scss"  scoped>

<style>
<style scoped>
...组件的其他样式
</style>

按道理来说这边是ok的了。但是我写的代码结构是这样子的。

//index.css
@import url('./loElementStyle.scss');
@import url('./loStyle.scss');
@import url('./standard.scss');

然后把这个index.scss引入了组件中去,发现不管使用@import方式还是src引入方式都不起效。后来排查了半天才发现index.scss的引入也有问题。应该要这鸭子:

@import './loElementStyle.scss';
@import './loStyle.scss';
@import './standard.scss';

问题所在:

  • @import并不是引入代码到里面,而是发起新的请求获得样式资源。
  • 在style里采用src=“外部样式路径”引入到当前组件。
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值