vue.js - vuejs组件的样式对其他组件来说是全局的吗

标签 vue.js vuejs2 vue-component

我有两个页面:

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

search.vue 中,我有指向 person.php 的链接。

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

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

<style>
  .row {
    background-color: red;
  }
</style>

除了通过 href 链接打开 person.php 页面之外,我无法连接这两个 View 。

最佳答案

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

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

<style scoped>
  .row {
    background-color: red;
  }
</style>

来自Documentation :

The optional scoped attribute automatically scopes this CSS to your component by adding a unique attribute (such as data-v-21e5b78) to elements and compiling .list-container:hover to something like .list-container[data-v-21e5b78]:hover.


请注意,scoped 属性是单文件组件的 Vue 功能,与一般的 scoped style tag attribute 不同。 ,具有类似的效果,但目前仅 Firefox 支持。

关于vue.js - vuejs组件的样式对其他组件来说是全局的吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44546592/

相关文章:

vue.js - 如何在 VueJs 中指定构建文件项目的自定义名称

javascript - Vue 组件呈现为注释?

javascript - 来自 $refs 的 Vue.js v-for 元素在 watch 函数中损坏

javascript - 使用带有多个页面的 Vue-cli,我如何路由到应用程序内的页面

javascript - 将数据从 Laravel 传递到 Blade View 中的组件

javascript - 如何使用带参数的 vuex 命名空间 getter?

javascript - Vue 类组件属性未在实例上定义

javascript - i18next 单一翻译字符串回退/默认(Vue JS)

javascript - map 边界更改时显示新标记并清除旧标记

animation - Vue.js 过渡类在动画完成之前消失