当前位置: 首页 > news >正文

第十八章 Vue组件样式范围配置之scoped

目录

一、引言

二、案例演示 

2.1. 工程结构图

2.2. 核心代码

2.2.1. main.js 

2.2.2. App.vue

2.2.3. BaseOne.vue

2.2.4. BaseTwo.vue

2.3. 运行效果

2.4. 调整代码 

2.4.1. BaseTwo.vue

2.4.2. 运行效果

三、scoped原理


一、引言

前面的几个章节在介绍组件的时候我们提到过,Vue组件是由<template>、<style>和<script>三大部分组成,那么本章节我们将对组件中的样式做一个再深入讲解。

日常开发过程中,我们经常会碰到一些HTML元素样式冲突的情况,且排查和管理比较耗费精力,那么Vue在组件的样式方面,是怎样处理冲突的呢?这就要提到Vue组件样式中的scoped属性:

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

1. 全局样式: 默认组件中的样式会作用到全局

2. 局部样式: 可以给组件加上 scoped 属性, 可以让样式只作用于当前组件

二、案例演示 

2.1. 工程结构图

2.2. 核心代码

2.2.1. main.js 

import Vue from 'vue'
import App from './App.vue'Vue.config.productionTip = falsenew Vue({render: h => h(App),
}).$mount('#app')

2.2.2. App.vue

<template><div class="App"><BaseOne></BaseOne><BaseTwo></BaseTwo></div>
</template><script>
import BaseOne from './components/BaseOne.vue'
import BaseTwo from './components/BaseTwo.vue'
export default {components: {BaseOne,BaseTwo}
}
</script><style></style>

2.2.3. BaseOne.vue

<template><div>BaseOne</div>
</template><script>
export default {}
</script><style>
</style>

2.2.4. BaseTwo.vue

<template><div>BaseOne</div>
</template><script>
export default {}
</script><style>
</style>

2.3. 运行效果

我们会发现组件BaseTwo中的样式对App.vue和BaseOne.vue生效了,即全局生效:

2.4. 调整代码 

2.4.1. BaseTwo.vue

<template><div>BaseTwo</div>
</template><script>
export default {}
</script><style scoped>
/** 默认样式会作用于全局*/
div {border: 3px solid blue;margin: 30px;
}
</style>

2.4.2. 运行效果

我们将BaseTwo中的样式增加scoped属性,我们能看到这个样式只对当前组件生效:

三、scoped原理

我们在日常项目开发的过程中,要注意的是组件应该有着自己独立的样式,因此推荐加上scoped属性,scoped的原理如下

1. 当前组件内标签都被添加 data-v-hash值的属性

2. css选择器都被添加 [data-v-hash值] 的属性选择器

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

 

相关文章:

第十八章 Vue组件样式范围配置之scoped

目录 一、引言 二、案例演示 2.1. 工程结构图 2.2. 核心代码 2.2.1. main.js 2.2.2. App.vue 2.2.3. BaseOne.vue 2.2.4. BaseTwo.vue 2.3. 运行效果 2.4. 调整代码 2.4.1. BaseTwo.vue 2.4.2. 运行效果 三、scoped原理 一、引言 前面的几个章节在介绍组件的时…...

【JavaScript】JavaScript 进阶-3-编程思想构造函数原型(更新中)

目录 编程思想构造函数原型 编程思想 构造函数 原型...

头歌网络安全爬虫

#!/usr/bin/env python # -*- coding: utf-8 -*- # Time : 2020/4/8 8:19 # File : info.py # ---------------------------------------------- # ☆ ☆ ☆ ☆ ☆ ☆ ☆ # >>> Author : Alex # >>> QQ : 2426671397 # >>> Mail…...

二、k8s快速入门之docker+Kubernetes平台搭建

centosmaster192.168.100.10centosnode1192.168.100.20centosnode2192.168.100.30 除特殊说明命令都需要在三台都执行 ⭐️ k8s 的指令&#xff1a; kubeadm&#xff1a;用来初始化集群的指令kubelet: 在集群中的每个节点上用来启动Pod和容器kubectl: 用来与集群通信的命令行…...

k8s的发展历史

Kubernetes&#xff08;通常缩写为 K8s&#xff09;是一个开源的容器编排平台&#xff0c;用于自动化应用程序的部署、扩展和管理。它的发展历史可以追溯到多个关键的里程碑&#xff1a; 1. 起源&#xff08;2013 年&#xff09; Kubernetes 的起源可以追溯到 Google 的内部项…...

Pytorch lightning多机多卡训练通讯问题(NCCL error)排查

一、问题 单机多卡可以正常训练模型&#xff0c;多机多卡数据加载完成后卡住不动&#xff0c;排查两台机器可以ping通&#xff0c;表明网络没有问题&#xff0c;查看bug信息是NCCL通信问题。报错信息大致如下: torch.distributed.DistBackendError: NCCL error in: …/torch/c…...

React如何实现Vue的keepAlive功能

前言 在React中&#xff0c;默认情况下组件在被卸载后会销毁状态&#xff0c;这与Vue的keep-alive功能不同。在Vue中&#xff0c;keep-alive组件可以缓存组件状态&#xff0c;在路由切换时重新挂载。实现这一功能在React中并不简单&#xff0c;但我们可以借助一个第三方库——…...

在 Ubuntu 22.04 LTS 上安装 NVM (Node Version Manager) 管理和切换不同版本的 Node.js npm

安装 nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash# nvm --version 0.40.1安装 Node.js 的不同版本 列出所有可用的 Node.js 远程版本 nvm ls-remotenvm install v18.20.4# node --version v18.20.4# nvm current v18.20.4npm 是 …...

如何搭建题库管理小序❓

土著刷题小&#x1f34a;序不仅能够作为组织考试的利器&#xff0c;它同样可以帮助教育培训机构构建一个强大且高效的题库管理系统。 下面跟随我们的指导&#xff0c;一起来看看如何利用土著刷题小&#x1f34a;序轻松快捷地建立起自己的题库&#xff0c;并享受其所带来的诸多好…...

Spring Boot框架下校园社团信息管理的创新实践

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…...

vscode clangd for cuda 插件配置

这里写目录标题 1. 下载插件clangd,并且安装server到host2. 配置3. 安装调试插件 1. 下载插件clangd,并且安装server到host 步骤 extension下载 altshiftp, 下服务&#xff0c;如果下不下来请考虑用&#x1fa9c; 下载好后check一下&#xff0c;检查是否正常 正常的标志 注意…...

软件测试学习笔记丨SeleniumPO模式

本文转自测试人社区&#xff0c;原文链接&#xff1a;https://ceshiren.com/t/topic/22525 本文为霍格沃兹测试开发学社的学习经历分享&#xff0c;写出来分享给大家&#xff0c;希望有志同道合的小伙伴可以一起交流技术&#xff0c;一起进步~ 说明&#xff1a;本篇博客基于sel…...

研发效能DevOps: Vite 使用 Vue Router

目录 一、实验 1.环境 2.初始化前端项目 3.安装vue-router 4.Vite 使用 Vue Router 二、问题 1.运行出现空页面 2.Vue Router如何禁止页面回退 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 系统 软件版本备注Windows11VS Code1.94.2Node.jsv18.20.4(LT…...

记第一次本地编译seatunnel源码

拉取代码 git clone https://github.com/apache/seatunnel.git 使用版本 我们生产环境用的是2.3.5版本&#xff0c;所以基于2.3.5-release分支代码进行编译。 maven package过程 遇到的第一个问题&#xff1a;‘com.sun.tools.javac.tree.JCTree com.sun.tools.javac.tree…...

《云主机配置全攻略》

《云主机配置全攻略》 一、云主机配置的重要性二、配置云主机的关键要素&#xff08;一&#xff09;CPU 的选择&#xff08;二&#xff09;内存的考量&#xff08;三&#xff09;硬盘的抉择&#xff08;四&#xff09;带宽的确定&#xff08;五&#xff09;机房线路的考虑&…...

RHCE nginx架构和安装

nginx架构和安装 nginx架构和安装1.1 nginx架构1.2 安装nginx1.1.1 本地安装1.1.2 官网安装1.1.3 源码安装 1.3 控制服务1.4 页面自定义 nginx架构和安装 nginx是多进程组织模式&#xff0c;而且是一个由 Master 主进程和 Worker 工作进程组成 1.1 nginx架构 1.2 安装nginx …...

Jmeter自动化实战

一、前言 由于系统业务流程很复杂,在不同的阶段需要不同的数据,且数据无法重复使用,每次造新的数据特别繁琐,故想着能不能使用jmeter一键造数据 二、创建录制模板 可参考:jmeter录制接口 首先创建一个录制模板 因为会有各种请求头,cookies,签名,认证信息等原因,导致手动复制…...

构建高效的Java SOCKS5代理:从零开始的网络转发实现

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...

spring-boot(绑定配置文件及应用)

配置文件 SpringBoot使用一个全局的配置文件&#xff0c;配置文件名是固定的&#xff1b; application.properties application.yml 配置文件的作用&#xff1a;修改SpringBoot自动配置的默认值&#xff1b;SpringBoot在底层都给我们自动配置好&#xff1b; YAML&#x…...

Mac OS 搭建MySQL开发环境

Mac OS 搭建MySQL开发环境 文章目录 Mac OS 搭建MySQL开发环境一、安装Mysql&#xff1a;二、配置环境变量三、安装Navicat 本地环境&#xff1a; Mac OS Sequoia15.0.1&#xff08;M3 Max) 目标状态&#xff1a; 下载安装Mysql&#xff0c;配置相关环境。 一、安装Mysql&…...

MySQL索引优化快速入门

这里需要知道什么是B树 从数据结构角度简单分析&#xff1a; 二叉树和B树可以简单理解为通过二分法减少查询的次数&#xff0c;但是仍存在严重的性能问题 1&#xff0c;插入顺序不对时&#xff0c;会退化为链表&#xff0c;时间复杂度由O(logn)变成O(n)。 2. 大数据情况下…...

别再瞎调参了!HuggingFace Trainer微调BERT/ViT的保姆级避坑指南(附ArcFace实战代码)

HuggingFace Trainer微调实战&#xff1a;从参数陷阱到模型优化的深度拆解 当你第5次看到验证集准确率在0.85附近震荡不前&#xff0c;而训练损失仍在持续下降时&#xff0c;是否开始怀疑自己选择的优化器、学习率或损失函数&#xff1f;这不是个例——超过60%的NLP工程师在使用…...

constexpr从入门到架构级应用:掌握5大编译期元编程模式,3天重构高性能库

第一章&#xff1a;constexpr的本质与编译期计算范式constexpr 不是简单的“编译期可求值”标记&#xff0c;而是一种强制性的**编译期契约**&#xff1a;它要求被修饰的函数或变量必须在编译阶段完成求值&#xff0c;且所有操作必须处于常量表达式语境中。这一机制推动 C 从运…...

BLDC电机控制原理与PWM技术详解

1. BLDC电机控制基础解析无刷直流电机&#xff08;BLDC&#xff09;作为现代电机控制领域的重要成员&#xff0c;其控制原理与传统有刷电机存在本质差异。BLDC电机通过电子换向取代机械换向&#xff0c;这种设计带来了更高的效率和可靠性&#xff0c;但同时也增加了控制复杂度。…...

别让Liquid Glass拖慢你的App!给uni-app开发者的iOS 26动画优化清单(含代码示例)

别让Liquid Glass拖慢你的App&#xff01;给uni-app开发者的iOS 26动画优化清单&#xff08;含代码示例&#xff09; 最近在开发者社区里&#xff0c;不少同行都在吐槽iOS 26的动画性能问题。特别是那些采用了新Liquid Glass设计的应用&#xff0c;在旧款iPhone上运行时&#x…...

Kuikly动态化跨端框架的多维特性与选型实践

Kuikly&#xff0c;是指基于Kotlin MultiPlatform(KMP)构建的跨端开发框架&#xff0c;利用KMP的逻辑跨平台能力&#xff0c;抽象通用跨平台UI渲染接口&#xff0c;复用平台UI组件&#xff0c;实现UI跨平台&#xff0c;具备轻量、高性能、可动态化优势&#xff1b;其核心特点是…...

终极指南:如何通过ComfyUI-Custom-Scripts大幅提升AI绘画工作效率

终极指南&#xff1a;如何通过ComfyUI-Custom-Scripts大幅提升AI绘画工作效率 【免费下载链接】ComfyUI-Custom-Scripts Enhancements & experiments for ComfyUI, mostly focusing on UI features 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Custom-Scripts …...

android studio panda3 配置镜像链接失败,求教

安装了android studio panda3 配置镜像如下&#xff1a;buildscript {repositories {maven { url https://maven.aliyun.com/nexus/content/groups/public/ }maven { url https://maven.aliyun.com/repository/public/ }maven { url https://maven.aliyun.com/repository/googl…...

23岁+计算机人注意!困在传统开发?这份大模型报告助你职场逆袭,薪资翻倍!

如果你是23岁以上的计算机相关从业者&#xff0c;正困在传统开发瓶颈里、想跳槽无优势、想转行怕踩坑&#xff0c;或是盯着职场晋升、薪资翻倍却找不到突破口&#xff0c;那这篇文章和这份重磅报告&#xff0c;一定要认真看完。 当下人工智能全面落地&#xff0c;大模型早已不是…...

深入解析MyBatis查询异常:org.apache.ibatis.exceptions.PersistenceException的排查与修复

1. 初识PersistenceException&#xff1a;MyBatis的"红色警报" 当你看到控制台突然抛出org.apache.ibatis.exceptions.PersistenceException时&#xff0c;就像开车时仪表盘突然亮起故障灯。这个异常是MyBatis框架的通用异常包装器&#xff0c;专门用来封装数据库操作…...