文档章节

Angular2 @Componet 装饰器基础知识

十万猛虎下画山
 十万猛虎下画山
发布于 2017/08/30 15:36
字数 809
阅读 96
收藏 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 中文官网 虽然介绍和描述是英文的吧。。。

© 著作权归作者所有

共有 人打赏支持
十万猛虎下画山
粉丝 4
博文 109
码字总数 84349
作品 0
朝阳
程序员
私信 提问
深入研究 Angular 框架中的装饰

使用Angular(Angular 2 及以上版本)开发程序时,装饰是一个核心概念。还有一个正式的TC39 提案,目前处于阶段2中,该提案期望装饰器能够很快成为JavaScript 的核心语言功能。 回到Angular...

oschina
2017/12/06
1K
4
使用Angular CLI生成的项目结构解说

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

灯下草虫鸣_
2017/10/29
0
0
《AngularJS学习整理》系列分享专栏

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

开元中国2015
2018/11/09
0
0
AngularJS2.0 教程系列(一)

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

笔阁
2015/07/22
0
1
ngular2 VS Angular4 深度对比:特性、性能

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

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

没有更多内容

加载失败,请刷新页面

加载更多

CSS 选择器参考手册

CSS 选择器参考手册 选择器 描述 [attribute] 用于选取带有指定属性的元素。 [attribute=value] 用于选取带有指定属性和值的元素。 [attribute~=value] 用于选取属性值中包含指定词汇的元素。...

Jack088
今天
1
0
数据库篇一

数据库篇 第1章 数据库介绍 1.1 数据库概述  什么是数据库(DB:DataBase) 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据...

stars永恒
今天
2
0
Intellij IDEA中设置了jsp页面,但是在访问页面时却提示404

在Intellij IDEA中设置了spring boot的jsp页面,但是在访问时,却出现404,Not Found,经过查找资料后解决,步骤如下: 在Run/Debug Configurations面板中设置该程序的Working Directory选项...

uknow8692
昨天
3
0
day24:文档第五行增内容|每月1号压缩/etc/目录|过滤文本重复次数多的10个单词|人员分组|

1、在文本文档1.txt里第五行下面增加如下内容;两个方法; # This is a test file.# Test insert line into this file. 分析:给文档后增加内容,可以用sed 来搞定;也可以用while do done...

芬野de博客
昨天
4
0
深入理解JVM—JVM内存模型

深入理解JVM—JVM内存模型 我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存...

onedotdot
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部