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属性的作用 的相关文章

  • 如何使用事务范围的持久化上下文进行非事务性读取查询?

    我读了 Spring 文档 它说 PersistenceContext 注解有一个可选的属性类型 默认为 PersistenceContextType TRANSACTION 此默认值是您接收共享所需的 实体管理器代理 这是否意味着我必须让
  • 作用域对象的 Xtext 示例

    我正在寻找一个示例 在 XText 中 说明如何在用户定义的对象成员上实现代码完成 据我所知 我需要使用 IScope 但所有这些如何连接在一起还不清楚 鉴于trait是用户定义的类型 我如何构建语法来编码完成 验证其中包含的方法Strin
  • 关于 PHP 范围的问题 - 从 Java 程序员的角度来看

    我对 PHP 还很陌生 所以我试图理解 PHP Web 应用程序中的范围概念 在 Java 世界中 Java Web 应用程序 使用 Java Server Pages JSP 及以上 将允许 Java Bean 具有以下级别的范围 Pag
  • IIFE 和 call 的区别

    之间有区别吗 function call this and function or var MODULE function this hello world call MODULE and var MODULE function m m h
  • 多个指令 [myPopup、myDraggable] 请求新的/隔离的范围

    我编写了一个对话框指令 myPopup 和另一个用于拖动此对话框的指令 myDraggable 但我总是收到错误 多个指令 myPopup myDraggable 请求新的 隔离的范围 这是一个笨蛋 http plnkr co edit k
  • JavaScript 闭包与匿名函数

    我和我的一个朋友目前正在讨论 JS 中什么是闭包 什么不是 我们只是想确保我们真正正确地理解它 我们以这个例子为例 我们有一个计数循环 想要在控制台上延迟打印计数器变量 因此我们使用setTimeout and closures捕获计数器变
  • CodeIgniter,将数据从模型传递到控制器以在视图中使用

    我想将模型中查询的数据传递给控制器 为此我使用 return data 然后在我使用的控制器中 this gt load gt view my view data 据我了解var dump data 视图中应该显示查询的结果 事实并非如此
  • 如何获取调用函数的“this”值?

    如果我有一个这样的函数 function foo this console log this function bar bar prototype func function foo this var test new bar test f
  • Java:直接从同一类的另一个实例访问私有字段

    我正在写一个equals Object obj 一个类的函数 我发现可以访问私有字段obj来自来电者 因此 不要使用 getter Odp other Odp obj if other getCollection contains ftw
  • 全局变量声明

    我是 Python 的初学者 并且已经处理过全局变量的概念 当我以为我理解了这个概念时 我看到了一段简短的代码 证明我错了 message global def enclosure message enclosure def local g
  • 将整个包传递给雪簇

    我正在尝试并行化 使用snow parLapply 一些依赖于包 即除snow 调用函数中引用的对象parLapply必须使用显式传递给集群clusterExport 有没有办法将整个包传递到集群 而不必显式命名每个函数 包括用户函数调用的
  • 请解释 JavaScript 闭包在循环中的使用[重复]

    这个问题在这里已经有答案了 我读过很多关于闭包和循环内闭包的解释 我很难理解这个概念 我有这样的代码 有没有一种方法可以尽可能地减少代码 从而使闭包的概念更加清晰 我很难理解其中的部分i位于两个括号内 谢谢 function addLink
  • 查找 with: 块中定义的函数

    这是一些代码理查德 琼斯的博客 http www mechanicalcat net richard log Python Something I m working on 3 with gui vertical text gui labe
  • 在 Twig 的父作用域中设置变量

    在Smarty你可以做 var bla scope parent 在 Twig 中可能吗 不建议使用块 我知道 我需要变量 如果您不想使用default 过滤器 即 当您想在整个父模板和子模板中多次使用该变量时 您实际上可以在父模板中定义一
  • 类变量在其定义范围内?

    这可能是一个愚蠢的问题 我正在尝试制作文本泥 我需要每个 Room 类包含其他 Room 类 以便在尝试移动到它们或从它们获取信息时可以引用 但是 我不能这样做 因为我显然无法在其定义中声明一个类 那么 我该怎么做呢 当我说我做不到时 我的
  • 函数声明或函数表达式

    我刚刚在块作用域中定义函数时遇到了问题 考虑以下程序 try greet function greet alert Merry Christmas catch error alert error 我希望这个程序能够发出警报Merry Chr
  • iPhone Objective-C 以编程方式将范围按钮添加到 UISearchBar

    我目前这段代码用于创建 UISearchBar 改编自之前的 stackoverflow 示例 UISearchBar searchBar UISearchBar alloc initWithFrame CGRectZero searchB
  • 跨 HTML 窗口调用 Javascript 函数

    根据this https stackoverflow com questions 87359 can i pass a javascript variable to another browser window页面我应该能够调用子窗口的参数
  • onclick 事件中未调用函数

    我想在每个 YouTube 链接的末尾添加一些 HTML 以在 litebox 中打开播放器 到目前为止 这是我的代码 document ready function var valid url new RegExp youtube com
  • Python 函数可以从作用域之外赋予新属性吗?

    我不知道你可以这样做 def tom print tom s locals locals def dick z print z name z name z guest Harry print z guest z guest print di

随机推荐

  • 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属性只属于当前模块虽然方便但是我们需要慎用 因为当我们使用公共组件时会造成很多困难 增加难度 想