Angular 面试题汇总2-Component/Service (Angular v8+)

Angular 面试题汇总2-Component/Service (Angular v8+)Angularv8+面试系列Angular面试题汇总1-基本知识.目录关于AngularComponentcss样式的作用域、ShadowDOM关于AngularService单例服务(singleton)forRoot()模式关于AngularComponentcss样式的作用域、ShadowDOMShadowDOM是HTML规范的一部分,它允许开发人员封装自己的HTML标记,CSS样式和JavaScript。创建样式Component时,可以通过设置,启用。@Com.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

Angular v8+面试系列

关于Angular Component

css样式的作用域、Shadow DOM

Shadow DOM是HTML规范的一部分,它允许开发人员封装自己的HTML标记,CSS样式和JavaScript。创建样式Component时,可以通过设置,启用。

@Component({
  selector: 'my-app',
  template: `
    <h1>Hello World!</h1>
    <span class="red">Shadow DOM Rocks!</span>
  `,
  styles: [`
    :host {
      display: block;
      border: 1px solid black;
    }
    h1 {
      color: blue;
    }
    .red {
      background-color: red;
    }
  `],
  encapsulation: ViewEncapsulation.ShadowDom
})
class MyApp {
}

ViewEncapsulation可选值:

  • ViewEncapsulation.Emulated – 通过 Angular 提供的样式包装机制来封装组件,使得组件的样式不受外部影响。这是 Angular 的默认设置。
  • ViewEncapsulation.Native – 使用原生的 Shadow DOM 特性。但需要考虑浏览器是否支持。
  • ViewEncapsulation.None – 无 Shadow DOM,并且也无样式包装

关于Angular Service

服务(Service)充当着数据访问,逻辑处理的功能。把组件和服务区分开,以提高模块性和复用性。

单例服务(singleton)

  • 使用Angular CLI创建服务,默认会创建单例服务;
  • 把 @Injectable() 的 providedIn 属性声明为 root, 即为单例服务。
  • 单例服务(singleton)对象,可以用于临时存放全局变量。 对于复杂的全局变量,推荐使用状态管理组件(state management – Ngrx)。

forRoot() 模式

如果多个调用模块同时定义了 providers (服务),那么在多个特性模块中加载此模块时,这些服务就会被注册在多个地方。这会导致出现多个服务实例,并且该服务的行为不再像单例一样 。有多种方式来防止这种现象:

  • 用 providedIn 语法代替在模块中注册服务的方式。
  • 把服务分离到它们自己的模块中。
  • 在模块中分别定义 forRoot() 和 forChild() 方法。

Angular v8+面试系列

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180967.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Vue图片加载错误、图片加载失败的处理

    Vue图片加载错误、图片加载失败的处理比如后台返回的一个图片字段pic,我们通常在代码里,会做一个检验图片,通常会像下面这样写<img:src=”pic?pic:’../../assets/img/load.png'”alt=””>这个判断只能判断pic是否存在,只有pic=”的情况下,才回显示设置的默认图片,但是如果pic这个字段是有值的呢,并且是一个错误的值,或者一个找不到的404的图片呢?这个时候就要…

    2022年6月2日
    146
  • Nginx配置——反向代理

    Nginx配置——反向代理Nginx

    2022年7月14日
    11
  • Linux系统(根目录下)目录介绍

    Linux系统(根目录下)目录介绍1./bin目录/bin目录包含了引导启动所需的命令或普通用户可能用的命令(可能在引导启动后)。这些命令都是二进制文件的可执行程序(bin是binary–二进制的简称)

    2022年7月2日
    32
  • org.bson.codecs.configuration.CodecConfigurationException

    org.bson.codecs.configuration.CodecConfigurationException

    2021年6月15日
    79
  • 尚硅谷java培训几个月,经验分享

    尚硅谷java培训几个月,经验分享Java代码是怎么运行的?Java的基本类型Java虚拟机是如何加载Java类的JVM是如何执行方法调用的?(上)JVM是如何执行方法调用的?(下)JVM是如何处理异常的?JVM是如何实现反射的?JVM是怎么实现invokedynamic的?(上)JVM是怎么实现invokedynamic的?(下)Java对象的内存布局垃圾回收(上)垃圾回收(下)Java内存模型Java虚拟机是怎么实现synchronized的?Java语法糖与Java编译器16

    2022年7月8日
    18
  • 错误:备份集中的数据库备份与现有的数据库不同

    错误:备份集中的数据库备份与现有的数据库不同今天,在还原一个MSSQLServer的备份文件(.bak)时,遇到一个错误:备份集中的数据库备份与现有的数据库不同。Google了一下,引起这个错误的原因有可能是生成备份文件的SQLServer版本与准备还原备份的SQLServer版本不同所造成的。解决方案如下:选项-->还原选项-->覆盖现有数据库-->确定这样就能顺利还原由低版本SQLServer生成的备份文件了。

    2022年5月5日
    73

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号