vuejs组件的样式对其他组件来说是全局的吗

War*_*rio 2 vue.js vue-component vuejs2

我有两页:

  1. search.php包含一个名为的 vuejs 组件search.vue
  2. person.php包含另一个名为 的组件person.vue

在 中search.vue,我有到 的链接person.php

为什么组件中设置的样式search.vue也会影响 中的 DOM person.vue

style我的组件中的标签search.vue

<style>
  .row {
    background-color: red;
  }
</style>
Run Code Online (Sandbox Code Playgroud)

href除了通过链接打开页面之外,我没有其他地方可以连接这两个视图person.php

tha*_*ksd 5

styleVue 单文件组件的标签中定义的样式将被编译为单个文件,影响所有组件。

scoped但是,您可以在组件的标签上指定属性style

<style scoped>
  .row {
    background-color: red;
  }
</style>
Run Code Online (Sandbox Code Playgroud)

来自文档

可选scoped属性通过向元素添加唯一属性(例如data-v-21e5b78)并编译.list-container:hover为类似.list-container[data-v-21e5b78]:hover.


请注意,该scoped属性是针对单文件组件的 Vue 特性,与一般的scoped样式标签属性不同,后者具有类似的效果,但目前仅 Firefox 支持。

  • @Roy J:这个范围与css范围样式无关。这个范围被翻译(转译?)为普通的 css,它只是向元素添加一个唯一的属性并创建相应的 css 选择器。所以使用是完全合法的 (2认同)