Angular 1.5的大变化正在围绕
components的支持.
component('myComponent',{ template: '<h1>Hello {{ $ctrl.getFullName() }}</h1>',bindings: { firstName: '<',lastName: '<' },controller: function() { this.getFullName = function() { return this.firstName + ' ' + this.lastName; }; } });
虽然这一切都很好,但我不确定这与指令有什么不同.
与传统的自定义指令相比,使用组件有什么好处? Angular 1.5和Angular 2中的组件是否相同?
解决方法
.component现在是编写代码的首选方式,因为它有利于良好实践,并使开发人员能够编写类似于角度2的代码(类似于Web组件).基本上,当您使用组件编写代码时,升级到角度2将更容易.功能性几乎保持不变.您应该在可能的情况下始终使用.component.
变化(提取)
>使用object而不是function声明组件
>使用绑定属性简化隔离范围
>组件始终具有隔离范围
>一些不良做法是不可能的
>更简单,更易于理解配置
>生命周期钩子:($onInit(),$onChanges(changesObj),$doCheck(),$onDestroy(),$postLink())
很棒的文章在这里:
https://toddmotto.com/exploring-the-angular-1-5-component-method
何时不使用组件(来自docs):
- for directives that need to perform actions in compile and pre-link functions,because they aren’t available
- when you need advanced directive definition options like priority,terminal,multi-element
- when you want a directive that is triggered by an attribute or CSS class,rather than an element.
我相信,您可以找到的最佳描述是官方指南:https://docs.angularjs.org/guide/component.它涵盖了所有更改,更改原因并让您深入了解组件.