javascript - v-deep 是 Vue.js 中的反模式吗?

标签 javascript vue.js sass vuejs2 vuejs3

在设计 Vue.js 组件样式时,可以使用 ::v-deep 来定位嵌套组件的 CSS 类,例如

<template>
  <div class="parent">
    <Child /> <!-- contains .grandchild CSS class -->
  </div>
</template>

// ...

<style lang="scss" scoped>
.parent {
  ::v-deep {
    .grandchild {
      display: block;
    }
  }
}
</style>

鉴于重命名或删除 .grandchild 可能会破坏 Child 的使用者,使用 v-deep 是否被认为是不好的做法?

最佳答案

这取决于上下文,在您使用无法直接修改的组件的情况下,它可能是必不可少的,例如第三方组件。 在其余情况下,最好遵循最佳实践,例如使用 props 来管理子组件样式或使用全局 CSS。

因此,::v-deep 只能在没有其他选择的情况下用作最后的手段。

关于javascript - v-deep 是 Vue.js 中的反模式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76303305/

相关文章:

javascript - AngularJS 和 WebSockets : Callback function needs $scope. $apply() 工作

javascript - Vue.js 将存储数据作为 prop 传递会导致突变警告

javascript - 为什么没有定义 $store?

vue.js - VueJS 从实例访问组件

javascript - 构建scss模块导致webpack编译出错

html - 使用对象时如何更改鼠标悬停时的 SVG 描边颜色

html - 标签上方单选按钮的样式

javascript - CoffeeScript 函数问题

javascript - 我可以为使用 javascript 在 Canvas 上绘制的路径提供一个类吗?

javascript - 与 Mysql、Php 和 Javascript 的动态导航链接