# vue2组件嵌套的时候什么情况下scoped会失效以及怎么解决

{% embed url="<https://v.douyin.com/r8fr4dk/>" %}

{% embed url="<https://www.bilibili.com/video/BV1J14y1a7kY/>" %}

这里用到了一个子组件

组件里边也很简单就有一个div

只是呢它的class也叫home

外层的容器里也有一个class=home

然后分别在这两个页面里

都定义了（各自的）home的背景颜色

大家看！按说的话呢

如果他用scoped来隔离这个样式

他应该是各有各的颜色对吧

我们来看一下（子组架是红色）

但是呢大家看

子组架的样式就没有生效

为什么会这样呢

原因是啊

他这个子组件

把这class写在了

这个template里边的第一层的DIV里边

这个DIY会有什么问题呢大家看

我们检查一下这个元素

看这个div里面有两个这个唯一的标识

两个唯一标识意味着什么呢

我们再来看一下它生成的home样式

在这里比如说这两个组件的HOME

都能命中这个子组件

也就意味着我后写的（口误：后生成）这个home就会生效

通常来说父组件的样式是在后面的

所以子组件的就被覆盖掉了

所以解决这个问题呢有两个方案

那第一个方案呢就是

既然他会把第一层生成两个

那个唯一标识

那我们就再套一个div（在外层）

让他把这个

生成两个的标识放在这一层上

这样的话呢就只有

子组件的这个.home可以命中这个子组件

我们来看一下

这样就行了

我们再来看下生成的

看看外层的这个有两个标识

这个772是父组件的

然后呢这个C40是子组件的

然后再往下看

这个子组架就只有一个唯一标识了

这样的话呢就只有那一个.home能命中他

那第二个方案呢

我先把这些回复一下哈

如果这块不改怎么处理呢

我们就要从这个权重上来考虑

来搜一下

既然他的位置在前面

那我们就想办法提高他这个权重值

现在他权重值是0-2-0对吧

一个类样式一个属性选择器

关于权重的问题

大家可以看这期视频啊

那我们怎么提高他的权重呢

我们可以在这再写一个点home

注意不要有空格

.home 连着再写一个.home

这样的话呢

大家看

虽然他在前面但是他的权重值高了

变成0-3-0了

两个类样式一个属性选择器

所以呢这子组件就可以应用上了


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://sunzsh.gitbook.io/xiaoshan.bug/vue2-zu-jian-qian-tao-de-shi-hou-shen-me-qing-kuang-xia-scoped-hui-shi-xiao-yi-ji-zen-me-jie-jue.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
