Angular 面试题3

250 阅读2分钟

1. component和module的区别?

  • Component:负责展示UI和处理逻辑,是应用的基本构建块。包含模板、样式和逻辑,通过@Component装饰器定义。

  • Module:用于组织组件、服务、指令等,通过@NgModule装饰器定义,用于管理应用结构,支持代码拆分和懒加载。

2,#### 什么是Redux?

Redux 是一种用于管理应用状态的JavaScript状态管理库 它用于具有复杂数据流的单页应用程序。

3,什么是Pipes? Pipes 是一种用于数据转换的机制,可以在模板中使用。它们允许你以简洁的方式格式化数据显示,比如将日期格式化、转换文本大小写、过滤数组等。

4,AOT 和JIT AOT(Ahead-of-Time)和 JIT(Just-in-Time)是 Angular 中两种编译策略,它们在应用程序的构建和执行时处理代码的方式不同。

  • JIT 编译

    • 编译发生在应用运行时。
    • 当用户加载应用时,浏览器会将 Angular 的模板和组件代码即时编译为 JavaScript。
  • AOT 编译

    • 编译发生在构建时。
    • 在构建阶段,Angular 将所有的模板和组件预先编译为 JavaScript,这样用户在加载应用时直接获得编译后的代码。
<h1>{{ title }}</h1>
<p>{{ description }}</p>js
function renderTemplate(ctx) {
  return `<h1>${ctx.title}</h1><p>${ctx.description}</p>`;
}

在 AOT 编译之后,浏览器会直接执行这些 JavaScript 函数,将它们生成的 HTML 插入页面,而不需要再进行模板编译

5, 什么是ecapsulation

是Angular的一种机制,用来控制组件和其他组件的样式如何相互作用。

emulated 通过在组件的DOM元素上添加唯一的属性选择器来做到样式隔离;

native 使用原生的Shadow Dom 实现样式隔离,只能用于支持Shadow DOM的浏览器 如Chrome和firefox,

None 不进行任何封装,组件的样式可应用于整个应用程序,可能引起样式冲突。

6 routeroutlet 是Angular的一个指令。 当用户导航到一个特定路由的时候,routeroutlet 就会动态加载相应的组件插入到 routeroutlet的位置。

routerOutlet 支持嵌套路由,这意味着可以在一个组件中定义另一个routerOutlet ,以便在子路由中加载更多的子组件。

7 微服务: