首页 > 其他分享 >Angular 模块封装概念常见的错误理解

Angular 模块封装概念常见的错误理解

时间:2022-12-19 21:01:31浏览次数:40  
标签:封装 comp 导入 模块 组件 Angular

Angular 以类似于 ES 模块的方式引入了模块封装的概念。 它基本上意味着可声明的类型——组件、指令和管道——只能由在该模块内声明的组件使用。 例如,如果我尝试使用下面的代码在 App 模块的 App 组件内使用 A 模块中的 a-comp

@Component({
  selector: 'my-app',
  template: `
      <h1>Hello {{name}}</h1>
      <a-comp></a-comp>
  `
})
export class AppComponent { }

会收到这个错误消息:

Template parse errors: ‘a-comp’ is not a known element

这是因为 App 模块中没有声明 a-comp。 如果我想使用这个组件,我需要导入定义这个组件的模块。解决方案如下:

@NgModule({
  imports: [..., AModule]
})
export class AppModule { }

这就是封装发挥作用的地方:A 模块必须通过将 a-comp 添加到 exports 数组来将其声明为在其他 module 内可用:

@NgModule({
  ...
  declarations: [AComponent],
  exports: [AComponent]
})
export class AModule { }

大多数 Angular 新手认为 Providers 也有封装,这种想法是错误的。可以在应用程序内的任何位置访问在任何非延迟加载模块中声明的 Providers.

Modules hierarchy

关于 imported modules 的最大困惑是开发人员认为这些被导入的 Modules 在应用运行时维护了一种层次结构,并且假设导入其他模块的模块成为被导入模块的父模块。

然而,事实并非如此。所有模块在编译阶段合并。因此,导入的模块和导入的模块之间没有层次关系。

所需命名空间之一被定义为默认命名空间。 此命名空间的控制标记不需要前缀。

<View> 标签是必需的,在上面的示例中,核心命名空间在第一行定义。 当然开发人员可以定义任何名称。 例如,为了使标签名称更短,还可以使用 c 而不是 core.

标签:封装,comp,导入,模块,组件,Angular
From: https://www.cnblogs.com/sap-jerry/p/16993044.html

相关文章

  • 【校招VIP】线上实习 推推 书籍详情模块 Java开发文档周最佳
    【推推】主要是为校招设计的小说一更新就通知的项目,每个模块都具有亮点和难点,项目表现为手机网站应用,可嵌入小程序或APP中。恭喜来自四川师范大学的o0hana同学获得本......
  • C#-sealed 封装类的使用
    示例1:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespacesingleton{publicclassmyClass1{///<summary>//......
  • python 模块 - time
    1.1time模块用于获取,操作日期和时间。1.2时间戳时间戳用于计算机内部时间值,用浮点数表示importtimeticks=time.time()print(f"当前时间戳为:{ticks}")用time()......
  • 模块加载失败请确保该二进制存储在指定路径中
    好几次都遇到这个问题,今天终于忍受不了了,狠下心来终于找到这个问题的解决方法了!开始-所有程序-附件-命令行提示符上单击右键,以管理员身份运行,在DOS命令中输入regsvr32(......
  • 54、内核模块管理及编译安装
    /proc目录:内核把自己内部状态信息及统计信息,以及可配置参数通过proc为文件系统加以输出/proc/sys设置sysctl-wpath.to.parameter=value查看或设定此目录中诸多参数,如sysc......
  • [编程基础] Python随机数生成模块总结
    date:2020-06-2421:05:32+0800tags:-编程基础-PythonPython随机数生成模块教程演示如何在Python中生成伪随机数。1介绍1.1随机数字生成器随机数生成器(......
  • Python安装time库失败?不是吧阿sir你还不知道内置模块不用下载吧
    嗨嗨,今天给python安装time库,一直报错,换源等办法都试过了直到我看到Python中有以下常用模块不用单独安装random模块sys模块time模块os系统操作re正则操作json模块......
  • ERP 学习笔记 - 生产模块
    生产模块蓝图简介      R/3PP生产计划系统是一个综合性的企业资源计划系统,包括制造执行系统的全部功能。它完整的集成各种应用领域所有业务功能,支持客户订单快速处......
  • Python中String模块
    目录Python中String模块详解一、字符串常量二、类1、格式化1.1介绍1.2简单应用1.3格式化输出2、模板化三、函数Python中String模块详解一、字符串常量String库......
  • 模块化
    模块化是很重要的,不过要想做得好却又没那么容易。做得好的模块化需要你能很好地把握事情所需要的功能,并能掌握一定的方法,使模块的划分更合理,也让自己能更高效。好的模块化......