vue css中scoped

主宰稳场 提交于 2019-12-01 12:23:00

1、什么是scoped

vue组件中,在style标签中有一个属性,叫做scoped。当此标签拥有scoped属性的时候,该组件下的css样式只适用于本组件,而不会影响全局组件。这其实也相当于样式的模块化了。

2、scoped实现的原理

其实scoped中最重要的就是PostCSS,PostCSS是一种css的编译的工具。来看一下转译之前的代码:

编译前的代码:

 

 

 

 

<template>    
    <span class="textScoped">scoped测试</span>
</template>
<script>

</script>
<style scoped>    
    .textScoped{
        color: red;    
    }
</style>复制代码

编译之后的代码:

<template>    
    <span data-v-3e5b2a80 class="textScoped">scoped测试</span>
</template>
<script>

</script>
<style scoped>    
    .textScoped[data-v-3e5b2a80]{        
        color: red;    
    }
</style>复制代码

编译后,我们发现css中,PostCSS给所有的dom都添加了一个独一无二的动态属性,给css选择器也添加了一个对应的属性选择器,这样就可以让样式只作用于该属性的dom元素(组件内部的dom)。

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!