官术网_书友最值得收藏!

Web components

The first public draft of web components was published on May 22, 2012, about 3 years after the release of AngularJS. As mentioned, the web components standard allows us to create custom elements and attach behavior to them. It sounds familiar because we've already used a similar concept in the development of the user interface with AngularJS. Web components sound like an alternative to Angular directives; however, they have a more intuitive API and built-in browser support. They introduced a few other benefits, such as better encapsulation, which is very important, for example, in handling CSS-style collisions.

A possible strategy for adding web components support in AngularJS is to change the directives implementation and introduce primitives of the new standard in the DOM compiler. As Angular developers, we know how powerful and complex the directives API is. It includes a lot of properties, such as postLink, preLink, compile, restrict, scope, and controller, and of course, our favorite transclude. Approved as standard, web components will be implemented on a much lower level in the browsers, which introduces plenty of benefits, such as better performance and native API.

During the implementation of web components, a lot of web specialists met with the same problems the AngularJS team did when developing the directives API, and came up with similar ideas. Good design decisions behind web components include the content element, which deals with the infamous transclusion problem in AngularJS. Since both the directives API and web components solve similar problems in different ways, keeping the directives API on top of web components would have been redundant and added unnecessary complexity. This is why the Angular core team decided to start from the beginning by building a framework compatible with web components and taking full advantage of the new standard. Web components involve new features; some of them are not yet implemented by all browsers. In case our application is run in a browser which does not support any of these features natively, Angular emulates them. An example for this is the content element polyfilled with the ng-content directive.

主站蜘蛛池模板: 西昌市| 连州市| 隆安县| 石家庄市| 乃东县| 沿河| 明溪县| 靖边县| 金堂县| 齐齐哈尔市| 应城市| 含山县| 三河市| 东方市| 龙南县| 富锦市| 柏乡县| 石城县| 苍溪县| 武宁县| 通海县| 绥德县| 邓州市| 乐清市| 巨鹿县| 宝坻区| 玉山县| 肇庆市| 青神县| 曲水县| 建平县| 周口市| 通海县| 高陵县| 社会| 沙坪坝区| 离岛区| 黑龙江省| 旅游| 郯城县| 滦南县|