sjo*_*ten 7 javascript angularjs angularjs-directive
Angular 1.5的重大变化是围绕组件的支持.
component('myComponent', {
template: '<h1>Hello {{ $ctrl.getFullName() }}</h1>',
bindings: { firstName: '<', lastName: '<' },
controller: function() {
this.getFullName = function() {
return this.firstName + ' ' + this.lastName;
};
}
});
Run Code Online (Sandbox Code Playgroud)
虽然这一切都很好,但我不确定这与指令有什么不同.使用components传统自定义指令有什么好处?Angular 1.5和Angular 2中的组件是否相同?
现在这.component是编写代码的首选方式,因为它有利于良好的实践,并使开发人员能够像 Angular 2 一样编写代码(类似于 Web 组件)。基本上,当您使用 编写代码时component,升级到 Angular 2 会更容易。功能几乎保持不变。如果可能的话,您应该.component 始终使用。
变化(摘录)
binding使用属性简化隔离范围$onInit(), $onChanges(changesObj), $doCheck(), $onDestroy(), $postLink())很棒的文章在这里: https ://toddmotto.com/exploring-the-angular-1-5-component-method
何时不使用组件(来自文档):
- 对于需要在编译和预链接函数中执行操作的指令,因为它们不可用
- 当您需要高级指令定义选项(例如优先级、终端、多元素)时
- 当您想要由属性或 CSS 类而不是元素触发的指令时。
我相信,您能找到的最好的描述是官方指南: https: //docs.angularjs.org/guide/component。它涵盖了所有变更、变更原因,并让您深入了解组件。
编辑 01-2020:
至少一年以来我不再处理 ng1 代码
在撰写回复时(01-2017),他们将在大多数情况下替换指令的印象是正确的。我从2017年6月的答案中删除了“替换”一词,因为它在当时确实具有误导性。然而,从 1.5 开始,如果可能的话,您仍然应该更喜欢组件而不是指令。
实际上,您应该根本不使用 AngularJS。现在处于 LTS 阶段,基本上只会修复错误。没有新功能。此外,LTS 将于 2021 年 7 月 1 日结束。 https://docs.angularjs.org/misc/version-support-status#long-term-support
附言。使用组件而不是指令使得代码将来更容易移植到 ngx。
| 归档时间: |
|
| 查看次数: |
867 次 |
| 最近记录: |