vue scoped属性的作用

2023-11-03

当style标签具有该scoped属性时,其CSS将仅应用于当前组件的元素。

作用功能:
实现组件的私有化,不对全局造成样式污染,表示当前style属性只属于当前模块虽然方便但是我们需要慎用,因为当我们使用公共组件时会造成很多困难,增加难度,想知道造成那些难度,需要先从scoped实现原理了解

实现原理:
通过观察DOM结构可以发现:vue通过在DOM结构以及css样式上加上唯一的标记,保证唯一,达到样式私有化,不污染全局的作用,如图,样式属性上也会多一个该字符,以保证唯一
在这里插入图片描述
可以看出加上scoped后的组件里的标签都会多一个data-v-469af010的属性,并且在css样式部分可以看出
在这里插入图片描述

由此可知,添加scoped属性的组件,为了达到不污染全局,做了如下处理:
给HTML的DOM节点加一个不重复属性data-v-469af010标志唯一性
在添加scoped属性的组件的每个样式选择器后添加一个等同与“不重复属性”相同的字段,实现类似于“作用域”的作用,不影响全局
如果组件内部还有组件,只会给最外层的组件里的标签加上唯一属性字段,不影响组件内部引用的组件

慎用:

从原理可见,之所以scoped可达到类似组件私有化、样式设置“作用域”的效果,其实只是在设置scoped属性的组件上的所有标签添加一的data开头的属性,且在标签选择器的结尾加上和属性同样的字段,起到唯一性的作用,但是这样如果组件中也引用其他组建就会出现类似下面的问题:

1.父组件无scoped属性,子组件带有scoped,父组件是无法操作子组件的样式的(原因在原理中可知),虽然我们可以在全局中通过该类标签的标签选择器设置样式,但会影响到其他组件

2.父组件有scoped属性,子组件无,父组件也无法设置子组件样式,因为父组件的所有标签都会带有data-v-469af010唯一标志,但子组件不会带有这个唯一标志属性,与1同理,虽然我们可以在全局中通过该类标签的标签选择器设置样式,但会影响到其他组件
父子组建都有,同理也无法设置样式,更改起来增加代码量

引用链接:https://www.jianshu.com/p/b92e2a022cd8

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue scoped属性的作用 的相关文章

随机推荐

  • Centos7安装使用Docker

    Centos7安装使用Docker 系统环境与软件版本说明 名称 详情 系统环境 CentOS Linux release 7 5 1804 Core Docker docker ce 18 06 1 ce 3 el7 Docker安装 官
  • 电子学会 青少年软件编程等级考试 C语言 8 级

    8级 2022 9 01 道路 POJ 1724 ROADS POJ 1724 ROADS 望穿秋水 晴的博客 CSDN博客 roads daima POJ No 3352 道路建设 Road Construction POJ No 335
  • 抖音seo账号矩阵源码系统

    1 开通多个抖音账号 并将它们归纳为一个账号矩阵系统 2 建立一个统一的账号管理平台 以便对这些账号进行集中管理 包括账号信息 内容发布 社区交互等 3 招募专业的运营团队 对每个账号进行精细化运营 包括内容制作 社区互动 数据分析等 4
  • c语言输入姓名输出姓和名_C输入和输出

    c语言输入姓名输出姓和名 Input means to provide the program with some data to be used in the program and Output means to display dat
  • Eclipse注释中文格式没对齐

    遇到的问题 一格式化 号就出现以下情况 老是对不齐 解决的办法 java code style formatter edit 去掉Enable block comment formatting复选框 然后把下面的数字调大一点就可以了 如果不
  • FPGA实现ADC采样芯片ADS8688的采样

    在电机控制中 一般需要对电机三相电流Iu Iv Iw采样 并通过采样补偿 坐标变换等将采样电流反馈值输出到电流环闭环控制 中 除此之外 还需要对母线电压 驱动器温度进行采样 监控采样值 以此为根据 来对运行中的驱动器做过压 过温保护 ADS
  • FPGA时序约束(一)基本概念入门及简单语法

    文章目录 一 建立时间和保持时间是什么 二 时序分析分类 三 时钟约束方法 3 1 时钟约束 3 2 输入延时约束 3 3输出延时约束 3 4时序例外 四 时序约束语法补充 文章目前大部分参考明德扬时序约束 只是一个学习总结 侵权删 原文链
  • mysql入坑之路(12)windows 部署MySQL,tar方式手动添加服务进行程序管理

    1 CTRL R 打开运行窗口 输入regedit点击确定打开注册表编辑器 2 找到HKEY LOCAL MACHINE SYSTEM CurrentControlSet Services 3 新建项 MYSQL服务 4 添加项内参数和值
  • 深度学习模型训练tips&典型报错解决方案(持续更新)

    一 Pytorch页面文件太小 无法完成操作 1 可能是python安装根目录磁盘虚拟内存不足 应增大虚拟内存 虚拟内存默认为C盘的2GB 2 可能是对应磁盘空间不足 需清理磁盘空间 3 如使用win10系统 Datalodar可能出现问题
  • PAT C入门题目-7-122 A-B (20 分)

    7 122 A B 20 分 本题要求你计算A B 不过麻烦的是 A和B都是字符串 即从字符串A中把字符串B所包含的字符全删掉 剩下的字符组成的就是字符串A B 输入格式 输入在2行中先后给出字符串A和B 两字符串的长度都不超过10 4 并
  • group by和select的使用

    GROUP BY的用法 1 group by概述 简单来说 将数据库的数据用 by 后面接的规则进行分组 即将一个大数据库分成一个个相同类型数据在一起的小区域 2 group by的语法 SELECT column name functio
  • idea Context: local file . file is included in 3 contexts

    最近不知道咋滴 我的好几个项目的applicationContext xml文件的头部都会出现这样的一个提示 看着很不舒服 删掉facts后 再重新加入 结果是这样就没有提示了
  • AcWing 902. 最短编辑距离(动态规划)

    这个题也做到过 貌似是鹅厂的压轴题 用三种方式编辑两个字符串的相似距离 题目 集合 将a 1 j 变成b 1 j 的操作方式 属性 min 考虑过程比较难 从末尾开始考虑 三种操作方式上着手 以下来自AcWing网友整理 很细致 有三种操作
  • 总结如何用 AbstractQueuedSynchronizer实现一个同步组件

    如何实现 1 创建一个名字为 MyTestLock接口 implment Lock 2 在 MyTestLock中 创建一个内部类 MyTestSyn 但是继承AbstarctQueuedSynchronizer 3 AbstarctQue
  • 前端与小程序

    之所以写这个因为我大半年没写过小程序了 早就记不清格式和规范了 最近又要写 用前端的方法写发现一堆用法错误 所以做个总结以后方便查询 1 数据绑定 vue中html的属性绑定一般在属性前加 比如 value data 只有innerHTML
  • sudo rosdep init ERROR: cannot download default sources list from: https://raw.githubusercontent.com

    安装上ros无法进行rosdep init 解决方法如下 https zhuanlan zhihu com p 77483614 因此 在 usr lib python2 7 dist packages rosdep2 sources li
  • ambari增加host节点 安装ambari-agent

    基于配置好所需的环境 1 进入Hosts 选择Add New Hosts 2 从主节点 root ssh 下拷贝出id rsa文件 3 添加节点hostname ambari3 node com 和添加id rsa 注册 成功添加 之后一直
  • BMP文件转YUV文件

    目录 一 实验原理 1 BMP文件格式分析 位图文件头 BITMAPFILEHEADER 位图信息头 BITMAPINFOHEADER 调色板 Palette 实际的位图数据 ImageData 注意 字节序 2 RGB文件转YUV文件 R
  • 静态分析-常量传播

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 ConstantPropagation 1 newBoundaryFact CFG 2 newInitialFact 3 void meetInto CP
  • vue scoped属性的作用

    当style标签具有该scoped属性时 其CSS将仅应用于当前组件的元素 作用功能 实现组件的私有化 不对全局造成样式污染 表示当前style属性只属于当前模块虽然方便但是我们需要慎用 因为当我们使用公共组件时会造成很多困难 增加难度 想