美文网首页
Vue:scoped样式冲突和原理& data是一个函数

Vue:scoped样式冲突和原理& data是一个函数

作者: 家乡的蝈蝈 | 来源:发表于2024-03-27 11:02 被阅读0次

1.1 scoped解决样式冲突

1.默认情况

写在组件中的样式会 全局生效 → 因此很容易造成多个组件之间的样式冲突问题。

  1. 全局样式: 默认组件中的样式会作用到全局,任何一个组件中都会受到此样式的影响
  1. 局部样式: 可以给组件加上scoped 属性,可以让样式只作用于当前组件

2.scoped原理

  1. 当前组件内标签都被添加data-v-hash值 的属性
  2. css选择器都被添加 [data-v-hash值] 的属性选择器

最终效果: 必须是当前组件的元素, 才会有这个自定义属性, 才会被这个样式作用到
编译前:

<div class="header">
  <p abc>自定义属性</p> // 其中abc为自定义属性
</div>
p[abc] {  // p[abc]指p标签含有abc属性
    color: red;
}

编译后:

<div data-v-51e3981b="" data-v-7ba5bd90="" class="header">
  <p data-v-51e3981b="" abc="">自定义属性</p>
</div>

p[abc][data-v-51e3981b] {
    color: red;
}

1.2 data是一个函数

一个组件的 data 选项必须是一个函数。目的是为了:保证每个组件实例,维护独立的一份数据对象。

每次创建新的组件实例,都会新执行一次data 函数,得到一个新对象。

组件三大组成部分的注意点:

  1. 结构:有且只能一个根元素
  2. 样式:默认全局样式,加上 scoped 局部样式
  3. 逻辑:data是一个函数,保证数据独立

相关文章

  • vue中如何实现给样式添加作用域?说明其实现原理

    vue中要给样式添加作用域,只需要给style标签添加scoped属性即可. 实现原理: 添加了scoped属性的...

  • 面试中值得深思的问题

    vue scoped的作用是什么? 如何更改element-ui样式? CSS,VUE中 scoped不污染其他...

  • Vue学习01

    一、样式 style: scoped 一个 .vue文件可以包含多个 标签。 标签可以有scoped 或者modu...

  • style中的scoped的理解

    一、 scoped的作用: 使当前组件的样式不会和其它组件冲突 二、注意事件: 1、使用 scoped 后,父组件...

  • 2022年vue面试题总结

    vue 中 data 为什么是一个函数 vue 组件的通信 vuex 的原理 vue 生命周期 v-if 与 v-...

  • 笔记

    Vue Scoped CSS覆盖组件的样式 如果在 style 标签设置 scoped 属性,则它的样式只应用到当...

  • vue样式作用域

    在vue中引入了scoped这个概念 ,scoped的设计思想就是让当前组件的样式不会修改到其它地方的样式 ,使用...

  • 前端高频面试题-VUE部分

    单页应用 概念 优缺点 MVVM VUE响应式的原理 data为什么是函数 v-model的原理 v-if 和 v...

  • 最新前端面试题总结

    vue相关 vue data为什么返回一个函数 vue父子兄弟组件通信 vuex有哪些属性 双向绑定实现原理 vu...

  • 修改Element控件的样式

    我们在vue中使用Element库的时候,vue组件中样式的scoped会导致我们无法修改控件的样式。 解决方法是...

网友评论

      本文标题:Vue:scoped样式冲突和原理& data是一个函数

      本文链接:https://www.haomeiwen.com/subject/klnstjtx.html