vue3 深度选择器 ::v-deep usage as a combinator has been deprecated. Use :deep(<inner-selector>) instead.

1、先上一个图,之前写的一篇文章中的图:

2、之前的代码:

//标签激活状态样式
  ::v-deep .ant-tabs-tab-active {
    background-color: v-bind(getThemeColor) !important; // 激活状态下的背景颜色
    color: #fff !important; // 激活状态下的文本颜色
    border-radius: 30px;
    padding: 10px;
    height: 35px;
    line-height: 35px;
  }

  ::v-deep .ant-tabs-tab-active .ant-tabs-tab-btn {
    color: #fff !important;
  }

  //标签未激活状态样式
  ::v-deep .ant-tabs-tab {
    background-color: rgb(189, 189, 189);
    border-radius: 30px;
    padding: 10px;
    height: 35px;
    line-height: 35px;
    color: rgba(128, 128, 128, 1);
  }

  ::v-deep .ant-tabs-tab .ant-tabs-tab-btn {
    color: rgba(128, 128, 128, 1);
  }

3、然后下午进行了修改以后,发现报了上面的WARN,那么正确的写法:

//标签激活状态样式
  :deep(.ant-tabs-tab-active) {
    background-color: v-bind(getThemeColor) !important; // 激活状态下的背景颜色
    color: #fff !important; // 激活状态下的文本颜色
    border-radius: 30px;
    padding: 10px;
    height: 35px;
    line-height: 35px;
  }

  :deep(.ant-tabs-tab-active .ant-tabs-tab-btn) {
    color: #fff !important;
  }

  //标签未激活状态样式
  :deep(.ant-tabs-tab) {
    background-color: rgb(189, 189, 189);
    border-radius: 30px;
    padding: 10px;
    height: 35px;
    line-height: 35px;
    color: rgba(128, 128, 128, 1);
  }

  :deep(.ant-tabs-tab .ant-tabs-tab-btn) {
    color: rgba(128, 128, 128, 1);
  }

注意:之前是::v-deep,现在修改为:deep()的形式,:deep,前面没有v-,一定要注意,否则无效哦~~。

4、然后我们来了解一下这个:deep()

5、我们使用:deep()就是想来修改三方组件的样式,也可以理解为css的重写(个人感觉)或者hook之类的,当然我们一般会加上<style  scoped>,或者在上层加一个<div class="div_container">...</div>,这样我们将:deep(.ant-tabs-tab .ant-tabs-tab-btn) {
    color: rgba(128, 128, 128, 1);
  }改为:deep(.div_container .ant-tabs-tab .ant-tabs-tab-btn) {
    color: rgba(128, 128, 128, 1);
  }。就可以,对于一个页面有几个相同的三方组件的不同处理css是有很大的用处。

参考:

vue3中的:deep()深度选择器_vue3 v-deep-CSDN博客

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
\[@vue/compiler-sfc\] ::v-deep usage as a combinator has been deprecated. Use :deep(<inner-selector>) instead. 这个报错是因为在Vue 3中,::v-deep选择器作为组合器已经被弃用了,取而代之的是使用:deep(<inner-selector>)选择器。这个报错可能会在一些手写的组件或者一些第三方组件库中出现,比如antdv。尽管这个报错不会影响项目的运行,但是在控制台中显示出来可能会让人感到不舒服。所以,为了避免这个报错,建议使用:deep(<inner-selector>)选择器来替代::v-deep选择器。 #### 引用[.reference_title] - *1* [[@vue/compiler-sfc] the and /deep/ combinators have been deprecated. Use :deep() instead.](https://blog.csdn.net/qq_68155756/article/details/128896890)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [vue2报错“::v-deep usage as a combinator has been deprecated. Use :deep(inner-selector) instead....](https://blog.csdn.net/renovateF5/article/details/126096733)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [[@vue/compiler-sfc] ::v-deep usage as a combinator has been deprecated. Use :deep(inner-selector...](https://blog.csdn.net/qq_41956361/article/details/127908664)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值