Angular中的: host 和 ::ng-deep

本文探讨了Angular中组件样式隔离的机制,通过分析:host和::ng-deep的作用,解释了如何避免样式污染,以及如何在子组件和第三方组件中精确控制样式。

现在的前端开发都是单页面组件化模式, 也是就一个项目就一个页面, 通过ruter来切换组件, angular也不例外。

而每个组件都有他们自己的样式,虽然每个组件都有自己的样式,但是最终都会打包到一起,那么,问题来了,组件之间的样式会相互影响吗。

我们新建一个项目my-app,在这个项目的src目录下有一个app组件,这个组件就是项目的根组件,我们把它当作父组件用,在app.component.ts里写上这些代码

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  template: `
    <p>我是父组件</p>
  `,
  styles: ['']
})
export class AppComponent { }

父组件有了

我们再新建两个子组件a.component.ts和b.component.ts,也分别在ts文件里写上这些代码

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-a',
  template: `
    <p>我是子组件 a</p>
  `,
  styles: ['']
})
export class AComponent implements OnInit {

  constructor() { }

  ngOnInit(): void {
  }

}

------------------------------------------------------------------------------

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-b',
  template: `
    <p>我是子组件 b</p>
  `,
  styles: ['']
})
export class BComponent implements OnInit {

  constructor() { }

  ngOnInit(): void {
  }

}

再把他们用到父组件app中

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  template: `
    <p>我是父组件<
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值