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

【angular19】入门基础教程(四):默认的css隔离作用域

众所周知,在vue和react框架中,我们css都是全局作用域的,如果不显示声明为私有的组件级别作用域,会影响到全局的布局样式。
所以在vue中,需要配置scoped这样的属性来限制css的作用范围,在react中相对来说要复杂点,css module或者第三方的styled-component解决方案是比较常见的

效果展示

在这里插入图片描述

代码实现

  • 父组件
import {Component,signal,computed,effect,inject,Injector,untracked,
} from '@angular/core';
import { ChildComp } from '../ChildComp1/index';@Component({selector: 'UserProfile',templateUrl: './index.html',styleUrls: ['./index.css'],imports: [ChildComp],
})
export class UserProfile {}
<main class="main-box"><h2>{{title}}</h2><div><p>{{userInfo.name}}</p><p>{{userInfo.age}}</p><p>{{userInfo.sex}}</p><p>{{userInfo.address.city}}</p><p>{{userInfo.address.street}}</p><button (click)="handleChangeName()">改变姓名</button><p>我银行账户的存款:{{money()}}</p><p>需要换银行的贷款:{{payload()}}</p><button (click)="handleChangeAge()">改变存款</button><button (click)="reset()">重置</button><!-- <button (click)="handleChangePayload()">降低贷款</button> --><child-comp /></div>
</main>
  • 子组件
<div class="main-box"><h2>{{title}}</h2>
</div>
import { Component } from '@angular/core';
@Component({selector: 'child-comp',templateUrl: './index.html',styleUrls: ['./index.css'],
})
export class ChildComp {title = 'child-demo';
}

如何禁用这种默认的组件级别样式

先看效果
在这里插入图片描述

在ng中也考虑到了这个问题,也给我们三种配置样式作用域

  • ViewEncapsulation.Emulated 默认的效果
  • ViewEncapsulation.ShadowDom 此模式严格保证只有该组件的样式才应用于组件模板中的元素。
  • ViewEncapsulation.None 与组件关联的任何样式都表现为全局样式。
    在这里插入图片描述
    在这里插入图片描述
    这样就实现了样式的全局作用域

原理分析

可以看到ng在组件编译后,自动给组件的类名加上了指纹,类似于css的module和vue中的scoped效果,成为了私有的组件级别的类型。

http://www.xdnf.cn/news/2996.html

相关文章:

  • 基于Java,SpringBoot,HTML水文水质监测预警系统设计
  • 【最新 MCP 战神手册 08】工具使用详解:实现 AI 行动
  • 动态图表 -- eg1
  • Femap许可分配和监控
  • 4月29日星期二今日早报简报微语报早读
  • 优化PCB Via Stub系列(1):一次学会利用层叠设计降低Via Stub损耗
  • 使用 Ziegler-Nichols 法进行 PID 参数整定:实践指南
  • [计算机网络]物理层
  • 力扣-数据结构-二叉树
  • 3D可视化编辑器模版
  • AimRT 从零到一:官方示例精讲 —— 四、logger示例.md
  • 信创产业贡献︱悬镜安全深度参编《2024网信自主创新调研报告》
  • 监控易一体化运维:解锁业务系统管理,助力企业运维升级
  • SOLIDWORKS广东东莞地区代理商哪个服务好?都有哪些代理商?
  • docker 部署前、后端分离项目详细步骤(从打包到部署)
  • 嵌入式学习笔记 - 关于STM32 SPI控制器读取以及写入时,标志位TXE, RXNE的变化
  • 文献阅读(二)植被恢复力变化对不同干旱类型的空间异质性|《Earth‘s Future》
  • 第八章 磁盘管理未完待续
  • 关闭正点原子atk-qtapp-start.service
  • 使用C# ASP.NET创建一个可以由服务端推送信息至客户端的WEB应用(一)
  • 解决vue3 路由query传参刷新后数据丢失的问题
  • [MySQL数据库] InnoDB存储引擎(四): InnoDB磁盘文件
  • 基于Spring Boot+Vue 网上书城管理系统设计与实现(源码+文档+部署讲解)
  • C# 中重启程序通常意味着关闭当前运行的应用程序实例
  • 【语法】C++的继承
  • 云钥科技红外短波工业相机
  • 【开源项目】基于sherpa-onnx的实时语音识别系统 - LiveASR
  • 实习技能记录【4】-----消息分发中的观察者模型
  • 聚焦智能体未来,领驭科技在微软创想未来峰会大放异彩
  • 每日一道leetcode(不会做学习版,多学一题)