Vue内使用scoped css和css module区别有哪些

这次给大家带来Vue内使用scoped css和css module区别有哪些,Vue内使用scoped css和css module的注意事项有哪些,下面就是实战案例,一起来看一下。

scoped css

官方文档

scoped css可以直接在能跑起来的vue项目中使用。

使用方法:

h1 { color: #f00;}

登录后复制

使用scoped划分本地样式的结果编译结果如下:

h1[data-v-4c3b6c1c] { color: #f00;}

登录后复制

即在元素中添加了一个唯一属性用来区分。

缺点

一、如果用户在别处定义了相同的类名,也许还是会影响到组件的样式。

二、根据css样式优先级的特性,scoped这种处理会造成每个样式的权重加重了:

即理论上我们要去修改这个样式,需要更高的权重去覆盖这个样式。

所以在引用包含scoped的第三方插件时如若需要修改样式则需要全局修改,而且要注意权重问题,0.0迫不得已再使用!important。

三、如果组件内部包含有其他组件,只会给其他组件的最外层标签加上当前组件的data属性:

所以一般父组件如果加了scoped,会比已经设置过自己样式的子组件内除最外层标签的内层标签的权重低,影响不到他们的样式。

不过也是可以通过如下方法影响到的:

Vue内使用scoped css和css module区别有哪些

四、scoped会使标签选择器渲染变慢很多倍

官方给了一些注意事项如下:

Vue内使用scoped css和css module区别有哪些

我们可以看到用标签选择器时scoped会严重降低性能,而使用class或id则不会。

css module

官方文档

css module需要增加css-loader配置才能生效,具体可看文档的实现。

注意

如果你使用的是style-loader,如果想让配置生效需要更换到文档所述的vue-style-loader。

二者区别可以从这里了找vue-style-loader

使用如下:

 

Im gray

.gray { color: gray;}

登录后复制

使用module的结果编译如下:

Im gray

.gray_3FI3s6uz { color: gray;}

登录后复制

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

这样$style.red就可以当做一个变量,并且可以在js中使用,如下:

export default { created () { console.log(this.$style.gray) // -> "gray_3FI3s6uz" // 一个基于文件名和类名生成的标识符 }}

登录后复制

我们可以看到,module在使用时多出了绑定和$style,如果你想更优雅,可以看一下这个vue-css-modules。

使用css module在keyframes中的问题

使用CSS modules处理动画animation的关键帧keyframes,动画名称必须先写。

animation: ani 1s;能正常编译,而animation: 1s ani;则会编译的不符合预期,所以平时养成良好的css参数书写顺序也很重要。

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

应该如何搭建webpack+react开发环境

Node.js Buffer使用详解

如何搭建React全家桶环境

立即学习“前端免费学习笔记(深入)”;

以上就是Vue内使用scoped css和css module区别有哪些的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2755146.html

(0)
上一篇 2025年3月8日 07:13:22
下一篇 2025年3月5日 04:17:07

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 深入理解Node module模块

    这篇文章主要介绍了深入理解node module模块,现在分享给大家,也给大家做个参考。 在开发复杂Web应用的时候,通常需要把各个功能进行拆分、封装到不同的文件并在需要的时候引用该文件,即进行代码的模块化管理。几乎所有的编程语言都有自己的…

    编程技术 2025年3月8日
    200
  • Vue中scoped实现原理及穿透使用步骤详解

    这次给大家带来Vue中scoped实现原理及穿透使用步骤详解,Vue中scoped实现原理及穿透使用的注意事项有哪些,下面就是实战案例,一起来看一下。 何为scoped? 在vue文件中的style标签上,有一个特殊的属性:scoped。当…

    编程技术 2025年3月8日
    200
  • 在vue+webpack中解决css引用图片打包后找不到资源文件方面的问题

    下面我就为大家分享一篇详谈vue+webpack解决css引用图片打包后找不到资源文件的问题,具有很好的参考价值,希望对大家有所帮助。 使用vue打包,通过css引用图片资源。 .img {   height: 500px;   width…

    2025年3月8日
    200
  • r.js怎样操作css文件

    这次给大家带来r.js怎样操作css文件,r.js操作css文件的注意事项有哪些,下面就是实战案例,一起来看一下。   main.css是合并的主文件,或称配置文件。要合并的文件使用@import引入。如下 main.css @import…

    2025年3月8日
    200
  • 在vue中有关如何使用style的scoped属性

    本篇文章主要介绍了浅谈vue中慎用style的scoped属性,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 在vue组件中,为了使样式私有化(模块化),不对全局造成污染,可以在style标签上添加scoped…

    编程技术 2025年3月8日
    200
  • 深入分析JavaScript的Module模式编程

    基础知识 首先我们要大概了解一下Module模式(2007年由YUI的EricMiraglia在博客中提出),如果你已熟悉 Module 模式,可以跳过本部分,直接阅读”高级模式”。 相关学习推荐:javascrip…

    2025年3月7日
    200
  • 原来ES6 module还可以这样用!(备忘单)

    这是一份备忘单,展示了不同的导出方式和相应的导入方式。 它实际上可分为3种类型:名称,默认值和列表 。 // 命名导入/导出 export const name = ‘value’import { name } from ‘…’// 默…

    2025年3月7日
    200
  • 如何使用Node.js创建模块(module)

    node module是一个具有方便功能的模块,可以通过在node.js中使用npm命令进行安装来使用。它也可以单独制作和使用,因此可以更有效地开发,本篇文章就来给大家介绍node.js创建模块的 方法,下面来看具体的内容。 如何创建模块?…

    2025年3月7日
    200
  • python开发中module模块用法实例分析

    本文实例讲述了python开发中module模块用法。分享给大家供大家参考,具体如下: 在python中,我们可以把一些功能模块化,就有一点类似于java中,把一些功能相关或者相同的代码放到一起,这样我们需要用的时候,就可以直接调用了 这样…

    编程技术 2025年3月5日
    200
  • python进阶教程之模块(module)介绍

    我们之前看到了函数和对象。从本质上来说,它们都是为了更好的组织已经有的程序,以方便重复利用。 模块(module)也是为了同样的目的。在Python中,一个.py文件就构成一个模块。通过模块,你可以调用其它文件中的程序。 引入模块 我们先写…

    编程技术 2025年2月28日
    200

发表回复

登录后才能评论