分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

[Vue]Scoped Css与Css Modules的区别

发布时间:2023-09-06 02:13责任编辑:熊小新关键词:暂无标签

均为解决CSS全局作用域问题(样式冲突(污染))的一个解决方案。

1.Scoped CSS

当 <style> 标签有 scoped 属性时,相当于在元素中添加了一个唯一属性用来区分

<style scoped>.example { ?color: red;}</style><template> ?<div class="example">hi</div></template>

它通过使用 PostCSS 来实现以下转换,转换结果:

<style>.example[data-v-f3f3eg9] { ?color: red;}</style><template> ?<div class="example" data-v-f3f3eg9>hi</div></template>

2.CSS Modules

通过给样式名加hash字符串后缀的方式,实现特定作用域语境中的样式编译后的样式在全局唯一。

<template> <p :class="$style.gray"> Im gray </p></template><style module>.gray { color: gray;}</style>

使用module的结果编译如下:

<p class="gray_3FI3s6uz">Im gray</p>.gray_3FI3s6uz { color: gray;}

由此可见,css module直接替换了类名,排除了用户设置类名影响组件样式的可能性。

推荐使用CSS Modules

详细见官方文档:https://vue-loader.vuejs.org/zh/guide/scoped-css.html#混用本地和全局样式

[Vue]Scoped Css与Css Modules的区别

原文地址:https://www.cnblogs.com/vickylinj/p/9573395.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved