Angular 装饰器和指令在角度上有什么区别?
我对Angular中的指令和装饰器非常困惑。我认为任何以@为前缀的东西都是一个装饰器,现在当我读到它所说的指令时,组件就是一个指令。发生什么事?对此事的任何澄清都会有帮助。指令 指令是角度应用程序的构建块 角度分量只不过是带有Angular 装饰器和指令在角度上有什么区别?,angular,angular-directive,angular-decorator,Angular,Angular Directive,Angular Decorator,我对Angular中的指令和装饰器非常困惑。我认为任何以@为前缀的东西都是一个装饰器,现在当我读到它所说的指令时,组件就是一个指令。发生什么事?对此事的任何澄清都会有帮助。指令 指令是角度应用程序的构建块 角度分量只不过是带有模板的指令。当我们说组件是角度应用的构建块时 装饰师 装饰器,将类标记为角度组件,并提供配置元数据,用于确定在运行时如何处理、实例化和使用该组件
模板的指令
。当我们说组件是角度应用的构建块时
装饰师
装饰器,将类标记为角度组件,并提供配置元数据,用于确定在运行时如何处理、实例化和使用该组件
是使用前缀@
符号调用的函数,后面紧跟着类、参数、方法或属性。decorator函数提供了有关类、参数或方法的信息
我们可以说,Decorators
是函数,有四个东西(类、参数、方法和属性)可以被修饰,它们将与每个不同的函数签名一起出现
有一些好的博客,你可以阅读他们的更多信息
角度指示和装饰
装饰师:
装饰器是一种特殊的声明,可以附加到
类声明、方法、访问器、属性或参数。
装饰器使用@expression形式,其中expression必须计算为
将在运行时调用的函数,其中包含有关
装饰宣言
下面是TypeScript文档中名为sealed的decorator示例:
function sealed(constructor: Function) {
Object.seal(constructor);
Object.seal(constructor.prototype);
}
您将注意到它将构造函数作为参数。它可以在类上使用,如下所示:
@sealed class Greeter {
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet() {
return “Hello, “ + this.greeting;
}
}
指令:
Angular指令基本上是一个带有@Directive修饰符的类。A.
组件也是一个带模板的指令。@组件装饰器
实际上是一个@Directive修饰符,用面向模板的方法扩展
特征。每当Angular呈现指令时,它都会更改DOM
根据指令给出的指示。指令
显示在与属性类似的元素标记中
角度指令可分为两种类型:结构指令和属性指令
结构指令通过添加、删除和替换DOM中的元素来改变布局。
属性指令更改现有元素的外观或行为。在模板中包含属性指令时,它们看起来像常规HTML属性。实现双向数据绑定的ngModel指令就是属性指令的一个示例。ngModel通过设置现有元素的显示属性并响应更改的事件来修改其行为
请注意,在定义角度组件时,我们是如何使用@component指令的
@Component({
selector: ‘main’,
template: `<child-dir #c=”child”></child-dir>`
})
class MainComponent { .. }
@组件({
选择器:'main',
模板:``
})
类MainComponent{..}
可能会重复很多教程。你的职位太宽了,不适合这么做