Vue3.x的深度选择器详细解读

ops/2025/2/22 6:57:19/

在 Vue 3 中,深度选择器(Deep Selector)用于在 <style scoped> 中穿透作用域样式,影响子组件的样式。Vue 3 中深度选择器的语法与 Vue 2 有所不同,以下是详细说明:

1. 深度选择器的作用

在 Vue 的单文件组件中,<style scoped> 会将样式限制在当前组件内,避免样式污染。但有时需要修改子组件的样式,这时就需要使用深度选择器。

2. Vue 3 中的深度选择器语法

Vue 3 中,深度选择器的语法有以下几种:

(1) ::v-deep
  • 这是 Vue 3 推荐的标准语法。

  • 示例:

<style scoped>
.parent ::v-deep .child {color: red;
}
</style>
(2) >>>(已弃用)
  • 在 Vue 2 中常用,但在 Vue 3 中已弃用。

  • 示例:

<style scoped>
.parent >>> .child {color: red;
}
</style>
(3) /deep/(已弃用)
  • 在 Vue 2 中也可以使用,但在 Vue 3 中已弃用。

  • 示例:

<style scoped>
.parent /deep/ .child {color: red;
}
</style>
(4) :deep()
  • 这是 Vue 3 中新增的语法,功能与 ::v-deep 相同。

  • 示例:

<style scoped>
.parent :deep(.child) {color: red;
}
</style>

3. 使用场景

深度选择器通常用于以下场景:

  • 修改第三方组件的样式。

  • 在父组件中修改子组件的样式。

4. 示例

父组件(Parent.vue
<template><div class="parent"><Child /></div>
</template><script>
import Child from './Child.vue';export default {components: {Child,},
};
</script><style scoped>
.parent ::v-deep .child {color: red;
}
</style>
子组件(Child.vue
<template><div class="child">这是子组件</div>
</template><style scoped>
.child {font-size: 16px;
}
</style>
结果
  • 子组件中的 .child 文字会变为红色,因为父组件通过深度选择器修改了子组件的样式。

5. 注意事项

  • 慎用深度选择器:过度使用深度选择器可能导致样式难以维护,建议优先通过子组件暴露的 props 或插槽实现样式定制。

  • 兼容性>>> 和 /deep/ 在 Vue 3 中已弃用,建议使用 ::v-deep  :deep()

总结

  • Vue 3 中推荐使用 ::v-deep 或 :deep() 作为深度选择器。

  • 深度选择器用于穿透作用域样式,影响子组件的样式。

  • 尽量避免过度使用深度选择器,以保持代码的可维护性。


http://www.ppmy.cn/ops/160036.html

相关文章

视频的分片上传

分片上传需求分析&#xff1a; 项目中很多地方需要上传视频&#xff0c;如果视频很大&#xff0c;上传到服务器需要很多时间 &#xff0c;这个时候体验就会很差。所以需要前端实现分片上传的功能。 代码分析&#xff1a; html文件: <input type"file" id"…

[网络] 如何开机自动配置静态IP,并自动启动程序

背景&#xff1a; 需要固定ip地址&#xff0c;并且能够自动启动可执行文件。 流程&#xff1a; 1.在/etc/network/interfaces 中添加 auto eth0 iface eth0 inet staticaddress 192.168.1.100netmask 255.255.255.0gateway 192.168.1.1 2.将下面这行代码添加自动启动脚本 …

DeepSeek 助力 Vue 开发:打造丝滑的表单验证(Form Validation)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

【HarmonyOS NEXT】获取正式应用签名证书的签名信息

1. 背景 在接入微博SDK时&#xff0c;发现在微博开放平台中需要填写应用的签名信息。该签名信息需要填写2个&#xff0c;一个是debug【调试】证书对应的应用签名&#xff0c;一个是release【发布/线上】证书对应的应用签名。 debug环境下&#xff0c;我们可以通过微博提供的方…

30道Qt面试题(答案公布)

前五个答案 ✦ 1. Qt中常用的五大模块是哪些? Qt中常用的五大模块包括: • Qt Core:提供核心非GUI功能,如数据结构、文件操作、国际化等。 • Qt GUI:提供与平台无关的图形和基本窗口功能。 • Qt Widgets:提供用于创建传统桌面应用程序的UI组件。 • Qt Netw…

数据结构《图》

数据结构《图论》 图的性质 一、无向图&#xff08;Undirected Graph&#xff09; 定义 由一组顶点&#xff08;Vertex&#xff09;和一组无向边&#xff08;Edge&#xff09;构成。 每条无向边用一条无方向的线段连接两个顶点&#xff0c;记为 ( (u, v) )&#xff0c;其中…

【DeepSeek 行业赋能】从金融到医疗:探索 DeepSeek 在垂直领域的无限潜力

网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…

Word Embeddings

Count-based Approach Term-document matrix: Document vectors Two ways to extract information from the matrix: Column-wise: a document is represented by a |V|-dim vector (V: vocabulary) Widely used in information retrieval: find similar documents 查找類似…