首页 > 其他分享 >在vue文件中使用 deep深度选择器

在vue文件中使用 deep深度选择器

时间:2023-06-28 22:55:13浏览次数:48  
标签:vue title color deep 组件 选择器

使用场景

有的时候我们需要在父组件中去修改第三方组件或者子组件的样式就会使用到deep深度选择器。比如:App组件中定义了.title的样式,也想让Test子组件中的.title也应用对应的样式

App.vue

<template>
  <div class="app">
    <h1>app组件</h1>
    <div class="title">这是app的标题</div>
    <test></test>
  </div>
</template>
<style scoped>
.title {
  color: #f00;
}
</style>

Test.vue

<template>
  <div class="test">
    <h1>Test组件</h1>
    <div class="title">这是test组件的标题</div>
  </div>
</template>

style标签为啥加"scoped"?是为防止在组件中定义的样式,影响到其他的组件。

deep深度选择器

vue-loader

为什么会牵扯到vue-loader?因为.vue文件的解析是由vue-loader去处理的,它有如下几个主要的功能:

  • 对template中的资源路径(比如:img以及URL等等)进行转换
  • 除了形成本地的样式之外,还可以对子组件进行传递(scope css)
    ...

相关链接:https://vue-loader.vuejs.org/

deep深度选择器的使用

/* 
  方式1:.a >>> .b { .... }
  缺点:像 Sass 之类的预处理器无法正确解析 >>>
*/
/* >>> .title {
  color: #f00;
} */

/* 方式2: /deep/ */
/* /deep/ .title {
  color: #f00;
} */

/* 方式3: ::v-deep(选择器) */
/* ::v-deep(.title) {
  color: #f00;
} */

/* 方式4: :deep(选择器) */
:deep(.title) {
  color: #f00;
}

官网并没有说明除了第一种以外其他方式的优缺点,所以得自己领会。

  • 使用/deep/,编辑器会报红色警告,但是项目正常运行。
  • 所以感觉第三和第四种会使用比较频繁点。

参考文章

穿透不生效问题排查 --- https://juejin.cn/post/7205208559264530488#comment

标签:vue,title,color,deep,组件,选择器
From: https://www.cnblogs.com/it774274680/p/17512775.html

相关文章

  • 图书商城Vue+Element+Node项目练习(...)
    本系列文章是为学习Vue的项目练习笔记,尽量详细记录一下一个完整项目的开发过程。面向初学者,本人也是初学者,搬砖技术还不成熟。项目在技术上前端为主,包含一些后端代码,从基础的数据库(Sqlite)、到后端服务Node.js(Express),再到Web端的Vue,包含服务端、管理后台、商城网站、小程序/App,分......
  • vue 扫码枪获取条形码逻辑
    直接贴代码<template><divclass="demo-container"><el-inputonkeyup="value=value.replace(/\D|/g,'')"v-model="codeValue"ref="codeInputElem"......
  • vue 弹框分左右两部分
    <divclass="dialog_diy"><el-dialog:visible.sync="otherShow":close-on-click-modal='true'width="40%"height="80%"><divslot="title"class="header-title"......
  • Vue.js 渲染函数和 JSX
    学习目录:Vue.js简介Vue.js实例与数据绑定Vue.js计算属性和侦听器Vue.js条件渲染和列表渲染Vue.js事件处理Vue.js表单输入绑定Vue.js组件基础Vue.js组件通信Vue.js插槽Vue.js动态组件和异步组件Vue.js自定义指令Vue.js过渡和动画Vue.js混入Vue.js自定义事件和v-model......
  • vue-element table表格排序推拽功能
    //1.安装sortablejsnpminstallsortablejs--save//2.功能页面中引入importSortablefrom‘sortablejs’具体使用(注意:elementtable务必指定row-key,且row-key必须是唯一的,如id,不然会出现排序不对的情况)<el-tablerow-key="id":data="tableData"style="width:......
  • 2023.6.28 - vue项目打包内存堆栈溢出JS stacktrace
    vue项目打包时报错,JSstacktrace:ReachedheaplimitAllocationfailed-JavaScriptheapoutofmemory这是因为node打包时是有内存空间限制的,node能分配多少空间,默认是根据电脑内存占比来算的。在内存比较小的电脑里,默认分配给node的内存可能不足以支撑起项目运行或者打包......
  • vue3+vite+js配置路径别名
    1、让vscode认识@符号项目下新建jsconfig.json,配置baseUrl,paths参数{"compilerOptions":{"target":"esnext","useDefineForClassFields":true,"module":"esnext","moduleResolution&q......
  • VUE http大文件断点续传上传
    ​ 对于大文件的处理,无论是用户端还是服务端,如果一次性进行读取发送、接收都是不可取,很容易导致内存问题。所以对于大文件上传,采用切块分段上传,从上传的效率来看,利用多线程并发上传能够达到最大效率。 本文是基于springboot+vue实现的文件上传,本文主要介绍服务端实现文件......
  • vue中watch侦听器,deep和immediate的用法
    1、deep深度监听的用法当监听一个对象时,可能想监听整个对象的变化,而不仅仅是某个属性。但在默认情况下,如果你正在监听formData对象并且修改了formData.username,对应的侦听器并不会触发,它只在formData对象被整个替换时触发。监听整个对象被称作深度监听,通过将deep选项设置为true......
  • 深入剖析:Vue核心之虚拟DOM
    前言使用Vue做项目也有两年时间了,对Vue的api也用的比较得心应手了,虽然对Vue的一些实现原理也耳有所闻,例如虚拟DOM、flow、数据驱动、路由原理等等,但是自己并没有特意去探究这些原理的基础以及Vue源码是如何利用这些原理进行框架实现的,所以利用空闲时间,进行Vue框架相......