Vue中避免样式冲突 scoped 属性的方法

简介: Vue中避免样式冲突 scoped 属性的方法

scoped 属性的作用是:让样式在局部生效,避免冲突。

引出组件样式冲突的问题:

首先创建 Add.vue 和 Edit.vue 两个组件,分别定义相同的 class 名 添加不同的样式。

<template>
    <div>
        <h1 class="box">添加</h1>
    </div>
</template>
<script>
export default {
    name: "Add"
}
</script>
<style>
.box {
    background-color: aqua;
}
</style>
<template>
    <div>
        <h1 class="box">编辑</h1>
    </div>
</template>
<script>
export default {
    name: "Edit"
}
</script>
<style>
.box {
    background-color: red;
}
</style>

然后在 Home.vue 页面引入这两个组件。

<template>
    <div>
        <Add></Add>
        <Edit></Edit>
    </div>
</template>
<script>
import Add from "../components/Add"
import Edit from "../components/Edit"
export default {
    name: 'Home',
    components: { Add, Edit }
}
</script>

:当两个组件定义相同的类名时 就会造成样式冲突的问题 并且页面显示的样式是由 import 引入顺序决定的 最后引入的样式会覆盖前面引入的样式。

例:将引入顺序换一下,最后引入 Add.vue 组件 就会显示 Add.vue 组件的样式。

<template>
    <div>
        <Add></Add>
        <Edit></Edit>
    </div>
</template>
<script>
import Edit from "../components/Edit"
import Add from "../components/Add"
export default {
    name: 'Home',
    components: { Add, Edit }
}
</script>

总结:如果样式发生冲突 优先显示最后引入的组件样式。

避免样式冲突 scoped 属性:

想要避免样式冲突的问题,可以在每个组件的 style 标签上添加 scoped 属性。

<template>
    <div>
        <h1 class="box">添加</h1>
    </div>
</template>
<script>
export default {
    name: "Add"
}
</script>
<style scoped>
.box {
    background-color: aqua;
}
</style>
<template>
    <div>
        <h1 class="box">编辑</h1>
    </div>
</template>
<script>
export default {
    name: "Edit"
}
</script>
<style scoped>
.box {
    background-color: red;
}
</style>

:它的原理就是给每个组件标签添加一个随机的属性 再配合这个属性添加样式。

原创作者:吴小糖

创作时间:2023.4.5

相关文章
|
4天前
|
缓存 监控 JavaScript
探讨优化Vue应用性能和加载速度的策略
【5月更文挑战第17天】本文探讨了优化Vue应用性能和加载速度的策略:1) 精简代码和组件拆分以减少冗余;2) 使用计算属性和侦听器、懒加载、预加载和预获取优化路由;3) 数据懒加载和防抖节流处理高频事件;4) 图片压缩和选择合适格式,使用CDN加速资源加载;5) 利用浏览器缓存和组件缓存提高效率;6) 使用Vue Devtools和性能分析工具监控及调试。通过这些方法,可提升用户在复杂应用中的体验。
16 0
|
5天前
|
JavaScript 前端开发
vue(1),小白看完都会了
vue(1),小白看完都会了
|
4天前
|
JavaScript 开发工具 git
Vue 入门系列:.env 环境变量
Vue 入门系列:.env 环境变量
10 1
|
5天前
|
JavaScript 前端开发 定位技术
Vue使用地图以及实现轨迹回放 附完整代码
Vue使用地图以及实现轨迹回放 附完整代码
Vue使用地图以及实现轨迹回放 附完整代码
|
JavaScript 测试技术 容器
Vue2+VueRouter2+webpack 构建项目
1). 安装Node环境和npm包管理工具 检测版本 node -v npm -v 图1.png 2). 安装vue-cli(vue脚手架) npm install -g vue-cli --registry=https://registry.
992 0
|
5天前
|
JavaScript 数据库
ant design vue日期组件怎么清空 取消默认当天日期
ant design vue日期组件怎么清空 取消默认当天日期
|
5天前
|
JavaScript C++
vue高亮显示组件--转载
vue高亮显示组件--转载
9 0
|
5天前
|
JavaScript 前端开发 数据安全/隐私保护
揭秘Vue中v-model的内部工作机制
揭秘Vue中v-model的内部工作机制
|
5天前
|
JavaScript
Vue中避免滥用this去读取data中数据
Vue中避免滥用this去读取data中数据
|
5天前
|
JavaScript
vue中使用pinia及持久化
vue中使用pinia及持久化
8 0