vue中各种deep的区别


一共,::v-deep、::deep 和 :deep(),>>>,/deep/
从Vue 3开始,推荐使用 ::deep 而不是 ::v-deep

1. ::v-deep

::v-deep 是 Vue 2 中引入的深度选择器,在 Vue 3 中仍然可用,但不再是推荐的写法。它用于穿透作用域,将样式应用到子组件的元素上。

示例

<template>
  <div class="parent">
    <ChildComponent />
  </div>
</template>

<script setup>
import ChildComponent from './ChildComponent.vue';
</script>

<style scoped>
.parent ::v-deep .child-class {
  color: red;
}
</style>

2. ::deep

::deep 是 Vue 3 中推荐的深度选择器。它与 ::v-deep 功能相同,但语法更简洁。

示例


<template>
  <div class="parent">
    <ChildComponent />
  </div>
</template>

<script setup>
import ChildComponent from './ChildComponent.vue';
</script>

<style scoped>
.parent ::deep .child-class {
  color: red;
}
</style>

3. :deep()

:deep() 是 Vue 3 中推荐的另一种深度选择器。它是一个伪类,可以嵌套在其他选择器中使用,提供了更灵活的语法。

示例

<template>
  <div class="parent">
    <ChildComponent />
  </div>
</template>

<script setup>
import ChildComponent from './ChildComponent.vue';
</script>

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

4 . >>>

在早期版本的Vue.js中,>>> 也被用来作为深度选择器。它的用法与 ::v-deep 类似,但是现在已经被 ::v-deep 或 ::deep 所取代。
示例:

.parent-class >>> .child-class {
  color: blue;
}

5. /deep/

/deep/ 也是早期Vue.js版本中的一个深度选择器。不过,随着Vue 2.6.0的发布,官方建议使用 ::v-deep 替代 /deep/。在某些情况下,特别是在使用某些构建工具或配置时,/deep/ 可能仍然有效,但并不推荐继续使用。
示例:

.parent-class /deep/ .child-class {
  color: green;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值