文档章节

Angular2 @Componet 装饰器基础知识

十万猛虎下画山
 十万猛虎下画山
发布于 2017/08/30 15:36
字数 809
阅读 104
收藏 0

@Component

@Component 装饰器(告诉Angular2)将class标记为Angular组件并收集组件配置元数据。

npm Package

@angular/core

Module

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

Source

core/src/metadata/directives.ts

 

Metadata Overview(元数据概述)

@Component({

    changeDetection: ChangeDetectionStrategy

    viewProviders: Provider[]

    moduleId: string

    templateUrl: string

    template: string

    styleUrls: string[]

    styles: string[]

    animations: any[]

    encapsulation: ViewEncapsulation

    interpolation: [string, string]

    entryComponents: Array<Type<any>|any[]>

    preserveWhitespaces: boolean

})

 

How To Use(如何使用)

@Component({   //装饰器

selector: 'greet',

template: 'Hello {{name}}!' 

})

class Greet {//class

   name: string = 'World';

}

Description(描述)

Component decorator allows you to mark a class as an Angular component and provide additional metadata that determines how the component should be processed, instantiated and used at runtime.

Component 装饰器允许你标记一个类作为Angular组件并提供额外的元数据,以确定如何在运行时处理,实例化和使用组件。

Components are the most basic building block of an UI in an Angular application.

组件是Angular UI界面最基本的构件(组件)。

An Angular application is a tree of Angular components.

一个Angular 应用是一个Angular 组件树(构成)。

Angular components are a subset of directives.

Angular组件是指令(directives)的一个子集(subset )

Unlike directives, components always have a template and only one component can be instantiated per an element in a template.

与指令不同(Unlike不像),组件始终具有模板并且只能在模板中的元素中实例化一个组件。

A component must belong to an NgModule in order for it to be usable by another component or application.

组件必须属于NgModule,以便它可以被另一个组件或应用程序使用。

To specify that a component is a member of an NgModule, you should list it in the declarations field of that NgModule.

要指定组件是NgModule的成员,应将其列在该NgModule的声明字段中。

In addition to the metadata configuration specified via the Component decorator, components can control their runtime behavior by implementing various Life-Cycle hooks.

除了通过Component装饰器指定的元数据配置之外,组件还可以通过实现各种生命周期钩子来控制其运行时行为。

 

Metadata Properties(元数据属性):

  • animations - 该组件的动画列表
  • changeDetection -  该组件使用的更改检测策略
  • encapsulation - 此组件使用的样式封装策略
  • entryComponents - 动态插入到此组件的视图中的组件列表
  • exportAs - 组件实例在模板中导出的名称
  • host - 类属性映射到事件,属性和属性的主机元素绑定
  • inputs -将属性名列表列为数据绑定作为组件输入
  • interpolation - 此组件模板中使用的自定义插值标记
  • moduleId - 定义此组件的文件的ES / CommonJS模块ID
  • outputs - 列出其他可以订阅的输出事件的类属性名称
  • providers - 该组件及其子组件可用的提供程序列表
  • queries - 配置可以注入组件的查询
  • selector -css选择器,用于标识模板中的此组件
  • styleUrls - 要应用于此组件视图的样式表的URL列表
  • styles - 内联定义的样式应用于此组件的视图
  • template -视图的内联定义模板
  • templateUrl - url到包含视图模板的外部文件
  • viewProviders - 此组件及其查看子项可用的提供程序列表

Example

@Component({

selector: 'greet', 

template: 'Hello {{name}}!'

}) 

class Greet { name: string = 'World'; }

更多元数据属性以及描述可见 angular2 中文官网 虽然介绍和描述是英文的吧。。。

© 著作权归作者所有

十万猛虎下画山
粉丝 6
博文 135
码字总数 109264
作品 0
朝阳
程序员
私信 提问
使用Angular CLI生成的项目结构解说

项目结构 组件,是整个应用的基础。下图是组件的必备元素。 @Component:组件元数据装饰器,简称装饰器。装饰器告诉Angular框架如何处理一个TypeScript类。装饰器包含多个属性,属性的值叫做...

灯下草虫鸣_
2017/10/29
78
0
试读angular源码第四章:angular模块及JIT编译模块

直接看人话总结 前言 承接上一章 该文章项目地址 文章地址 angular 版本:8.0.0-rc.4 欢迎看看我的类angular框架 文章列表 试读angular源码第一章:开场与platformBrowserDynamic 试读angul...

全菜工程师
06/17
0
0
AngularJS2.0 教程系列(一)

Why Angular2 Angular1.x显然非常成功,那么,为什么要剧烈地转向Angular2? 性能的限制 AngularJS当初是提供给设计人员用来快速构建HTML表单的一个内部工具。随着时间的推移,各种特性 被加...

笔阁
2015/07/22
24.5K
1
《AngularJS学习整理》系列分享专栏

《AngularJS学习整理》系列分享专栏 《AngularJS学习整理》已整理成PDF文档,点击可直接下载至本地查阅 https://www.webfalse.com/read/201748.html 文章 教你用AngularJS框架一行JS代码实现...

开元中国2015
2018/11/09
196
0
ngular2 VS Angular4 深度对比:特性、性能

在Web应用开发领域,Angular被认为是最好的开源JavaScript框架之一。 Google的Angular团队已于3月23日发布了Angular4,而期待已久的Angular2版本则是之前版本的完全重构。 对于成熟的开发人员...

机器的心脏
2018/06/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux 运行shell文件,出现 $'\r': command not found

运行编写的shell脚本时,出现了 $'\\r': command not found 这样的错误提示。 报错的原因是我们在windows系统操作时,编辑器里的换行符是\r\n ,而Linux上为\n,两个系统之间有差异导致的。 ...

芥末无敌
今天
10
0
Java数据结构(上)

枚举(Enumeration) 位集合(BitSet) 向量(Vector) 栈(Stack) 1.Enumeration(枚举) boolean hasMoreElements( ):测试是否有更多的元素 Object nextElement( ):如果此枚举对象至少还...

Firefly-
昨天
17
0
vue 跨层组件通讯 provide inject

https://cn.vuejs.org/v2/api/#provide-inject 类型: provide:Object | () => Object inject:Array<string> | { [key: string]: string | Symbol | Object } 详细: provide 和 inject 主......

阿豪boy
昨天
14
0
黑马程序员面试宝典(Java)Beta6.0免费下载

场景 JavaSE基础 面向对象特征以及理解 访问权限修饰符区别 理解clone对象 JavaSE语法 java有没有goto语句 &和&&的区别 如何跳出当前的多重嵌套循环? 是否可以继承String? 重载与重写的区别...

badaoliumang
昨天
14
0
监控linux系统状态

查看系统负载: w/uptime 最后面三个数字表示1分钟,5分钟,15分钟平均有多少个进程占用CPU 占用CPU的进程可以是Running,也可以是Waiting 某一时刻1颗CPU只能有一个进程在使用其资源 #查看c...

asnfuy
昨天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部