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

kmbjn2e3  于 2023-05-23  发布在  Vue.js
关注(0)|答案(1)|浏览(134)

在样式化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是否被认为是不好的做法?

yyyllmsg

yyyllmsg1#

它取决于上下文,在您使用的组件不能直接修改的情况下,它可能是必不可少的。第三方组件。在其他情况下,最好遵循最佳实践,例如使用props来管理子组件样式或使用全局CSS。
因此,::v-deep应该只在没有其他选择时作为最后的手段使用。

相关问题