我是靠谱客的博主 神勇导师,最近开发中收集的这篇文章主要介绍vue组件样式私有化scoped的实现原理vue组件样式私有化scoped的实现原理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

vue组件样式私有化scoped的实现原理

在vue组件中,style标签上有一个特殊属性:scoped。当给一个style标签添加scoped属性时,它的CSS样式就只能作用于当前的组件,也就是说,该样式只能适用于当前组件元素。通过该属性,可以使得组件之间的样式不互相污染。如果一个项目中的所有style标签全部加上了scoped,相当于实现了样式的模块化。

scoped的实现原理

vue通过在DOM结构以及css样式上加上唯一的标记,保证唯一,达到样式私有化,不污染全局的作用。

vue组件中的scoped属性的效果,主要通过PostCSS转译实现,转译前的vue代码:

<template>
  <div>
    <button class="btn">{{msg}}</button>
  </div>
</template>

<script>
export default {
  name: 'demo',
  data () {
    return {
      msg: 'Demo'
    }
  }
}
</script>

<style scoped lang="less">
 .btn{
   width: 50px;
   height: 30px;
   border-radius: 4px;
   background-color: #ccc;
 }
</style>

PostCSS给一个组件中的所有dom添加了一个独一无二的动态属性:

在这里插入图片描述

然后,给CSS选择器额外添加一个对应的属性选择器来选择该组件中dom,这种做法使得样式只作用于含有该属性的dom——组件内部dom。

在这里插入图片描述

最后

以上就是神勇导师为你收集整理的vue组件样式私有化scoped的实现原理vue组件样式私有化scoped的实现原理的全部内容,希望文章能够帮你解决vue组件样式私有化scoped的实现原理vue组件样式私有化scoped的实现原理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部