Introduction des fonctionnalités d'Angular 5.0
Nous sommes heureux d'annoncer la sortie d'Angular 5.0.0 - Pentagon Donut ! Il s'agit d'une autre version majeure, contenant de nouvelles fonctionnalités et corrigeant de nombreux bugs. Cela reflète une fois de plus notre objectif constant de rendre Angular plus petit, plus rapide et plus facile à utiliser. Angular 5.0 est là ! Avec ces changements majeurs, cet article présente les changements majeurs d'Angular 5.0. Les amis intéressés peuvent s'y référer.
Ce qui suit est une brève introduction aux changements majeurs de la v5. Pour en savoir plus, consultez le journal des modifications.
Build Optimizer
À partir de la version 5.0.0, les builds de produits exécutés via la CLI utilisent l'optimiseur de build par défaut.
L'optimiseur de build est un outil de la CLI qui peut réduire la taille du package construit en fonction de notre compréhension de votre application Angular.
Construire un optimiseur comporte deux tâches principales. Tout d'abord, marquez certaines parties de votre application comme pures afin que les outils existants puissent l'utiliser pour améliorer l'effet d'optimisation du « secouement de l'arbre » et supprimer les éléments inutiles de l'application.
Deuxièmement, l'optimiseur de build supprimera le code du décorateur angulaire de votre application. Les décorateurs ne sont utilisés que par le compilateur et ne sont pas utilisés pendant l'exécution et peuvent être supprimés. Les deux optimisations ci-dessus peuvent réduire la taille du package JS généré et accélérer le démarrage de l'application.
API de transfert d'état universel angulaire et prise en charge du DOM
Cela facilite le partage de l'état de l'application entre le serveur et le client.
Angular Universal est un projet qui aide les développeurs à effectuer un rendu côté serveur (SSR). Le HTML généré par le rendu côté serveur est convivial pour les robots d'exploration qui ne prennent pas en charge JS et contribue à améliorer les performances perçues par l'utilisateur.
Dans la version 5.0.0, l'équipe de développement a ajouté ServerTransferStateModule et le BrowserTransferStateModule correspondant. Ce module peut aider les développeurs à ajouter des informations pertinentes au contenu généré par le rendu côté serveur, puis à l'envoyer au client pour éviter une génération répétée. Ceci est utile pour les scénarios dans lesquels les données sont récupérées via HTTP. En transférant le statut du serveur vers le client, le développeur n'a pas besoin de faire une deuxième requête HTTP. La documentation pour le transfert de statut sera publiée dans quelques semaines.
L'équipe Angular Universal a également ajouté le serveur de plateforme Domino au serveur de plateforme. Domino prend en charge davantage d'opérations DOM prêtes à l'emploi dans un environnement côté serveur, ce qui peut améliorer notre prise en charge des bibliothèques de composants et JS tiers non côté serveur.
Améliorations du compilateur
Pour prendre en charge la compilation incrémentielle, nous avons amélioré le compilateur Angular. En conséquence, la reconstruction est accélérée, en particulier pour les builds de produits et les builds AOT, et l’effet est plus évident. Nous avons également amélioré le décorateur pour réduire la taille du paquet en supprimant les espaces.
Conversion TypeScript
Maintenant, le mécanisme de travail sous-jacent du compilateur Angular est la conversion TypeScript, ce qui rend les reconstructions incrémentielles beaucoup plus rapides. La conversion TypeScript est une nouvelle fonctionnalité de TypeScript 2.3 qui nous permet de plonger dans le pipeline de compilation TypeScript standard.
Avec la balise AOT ouverte, vous pouvez utiliser le mécanisme ci-dessus en exécutant ng serve.
ng serve --aot
Je suggère à tout le monde de l'essayer. Cette configuration deviendra la configuration par défaut pour la CLI à l'avenir. De nombreux projets rencontrent des problèmes de performances impliquant des milliers de composants, et nous espérons que des projets de toutes tailles pourront bénéficier de ces améliorations.
Lors de l'exécution d'une construction AOT incrémentielle de https://angular.io, le nouveau pipeline du compilateur peut économiser 95 % du temps de construction (les résultats des tests sur notre machine de développement proviennent de plus de 40 secondes réduites à moins de 2 secondes).
Notre objectif est de rendre la compilation AOT suffisamment rapide pour que les développeurs puissent l'utiliser pour le développement. Maintenant, nous avons dépassé les 2 secondes, donc AOT pourrait être activé par défaut dans les futures CLI.
Comme étape de transition vers cette conversion, nous n'avons plus besoin de genDir, et outDir a également changé : maintenant, nous allons taper tous les fichiers générés pour le package dans node_modules.
Préserver les espaces
Dans le passé, les compilateurs reproduisaient fidèlement et incluaient des tabulations, des nouvelles lignes et des espaces dans les modèles. Vous pouvez désormais choisir d'inclure ou non des espaces dans les composants et les applications.
Cette configuration peut être spécifiée dans le décorateur de chaque composant, et la valeur par défaut actuelle est vraie.
@Component({ templateUrl: 'about.component.html', preserveWhitespaces: false } export class AboutComponent {}
Ou vous pouvez le configurer globalement dans tsconfig.json, où la valeur par défaut de cet élément est également vraie.
{ "extends": "../tsconfig.json", "compilerOptions": { "outDir": "../out-tsc/app", "baseUrl": "./", "module": "es2015", "types": [] }, "angularCompilerOptions": { "preserveWhitespaces": false }, "exclude": [ "test.ts", "**/*.spec.ts" ] }
La règle générale est que la configuration au niveau du composant remplace la configuration au niveau de l'application. L'équipe de développement prévoit de modifier la valeur par défaut en false à l'avenir afin d'économiser de l'espace pour les développeurs par défaut. Ne vous inquiétez pas de vos balises
, le compilateur les gérera intelligemment. </p><p><strong>Prise en charge améliorée des décorateurs </strong></p><p> La réduction des expressions dans Lambda et les objets littéraux useValue, useFactory et les décorateurs de données sont désormais prises en charge. Cela permet d'utiliser des valeurs qui ne peuvent être réduites que dans les décorateurs qui peuvent être évalués au moment de l'exécution. </p><p>Vous pouvez désormais utiliser des fonctions Lambda au lieu de fonctions nommées. En d’autres termes, l’exécution du code n’affectera pas votre d.ts ou votre API externe. </p><p class="jb51code"><br/></p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>Component({ provider: [{provide: SOME_TOKEN, useFactory: () => null}] }) export class MyClass {}
我们还会将表达式降级,作为useValue的一部分。
Component({ provider: [{provide: SOME_TOKEN, useValue: SomeEnum.OK}] }) export class MyClass {}
国际化的数值、日期和货币管道
我们写了新的数值、日期和货币管道,让跨浏览器国际化更方便,不需要再使用i18n的腻子脚本(polyfill)。
在以前版本的Angular中,我们一直依赖浏览器及其i18n API提供数值、日期和货币格式。为此,很多开发者都在使用腻子脚本(polyfill),而结果也不好。很多人反馈说一些常见的格式(如货币)不能做到开箱即用。
而在5.0.0中,我们把这个管道更新成了自己的实现,依赖CLDR提供广泛的地区支持,而且可配置。以下是我们对v4和v5所做的比较:a document comparing the pipe behavior between v4 and v5。
如果你还没条件使用新管理,可以导入DeprecatedI18NPipesModule以降级到旧的行为。
StaticInjector代替ReflectiveInjector
为了消除对更多腻子脚本(polyfill)的依赖,我们用StaticInjector代替了ReflectiveInjector。前者不再需要Reflect,为开发者减少了应用大小。
以前
ReflectiveInjector.resolveAndCreate(providers);
以后
Injector.create(providers);
提升Zone的速度
一方面提升了Zone的速度,另一方面也可以在特别关注性能的应用中绕过它。
若要绕过它,启动应用时加上noop:
platformBrowserDynamic().bootstrapModule(AppModule, {ngZone: 'noop'}).then( ref => {} );
这里有一个完整的例子:the example ng-component-state project。
exportAs
组件和指令中增加了对多名称的支持。这有助于用户实现无痛迁移。通过把指令导出为多个名称,可以在不破坏原有代码的情况下在Angular语法中使用新名称。Angular Material项目已经在其前缀迁移项目中用上了,对其他组件作者肯定也有用。
示例
@Component({ moduleId: module.id, selector: 'a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab]', exportAs: 'matButton, matAnchor', . . . }
HttpClient
v4.3在@angular/common中推出过HttpClient,用于在Angular中发送请求,它小巧易用。HttpClient受到了开发者的广泛赞誉,因此我们推荐在所有应用中使用它,放弃之前的@angular/http library。
要升级HttpClient,需要在每个模块的@angular/common/http中把HttpModule替换为HttpClientModule,注入HttpClient服务,删除所有map(res => res.json())。
CLI v1.5
从Angluar CLI v1.5开始,已经开始支持Angluar v5.0.0,默认生成v5项目。
在这次小版本升级中,我们默认打开了构建优化器,让开发者拿到更小的包。
我们还修改了使用.tsconfig文件的方式,以更严格地遵守TypeScript标准。此前,如果检测到延迟加载的路由,而且你在tsconfig.json中手工指定了一组files或include,那这些路由会自动化处理。而如今,根据TypeScript规范,我们不再这么干了。默认情况下,CLI对TypeScript的配置中没有files或include,因此多数开发者不会受影响。
Angular表单添加updateOn Blur/Submit
这样可以根据blur或submit来运行验证和更新值的逻辑了,不必再单纯依赖input事件。
表单对应用很重要,如果有服务端验证,或者验证或更新值会触发较慢的操作,你当然希望它少跑几次。现在你可以在控件层面控制验证和更新值的时机了,也可以在表单层面设置。
此外,你现在可以直接在选项中指定asyncValidators,而不是通过第三个参数指定。
模板驱动的表单
以前
以后
<input name="firstName" ngModel [ngModelOptions]="{updateOn: 'blur'}">
或者
<form [ngFormOptions]="{updateOn:'submit'}">
反应式表单
以前
new FormGroup(value); new FormControl(value, [], [myValidator])
以后
new FormGroup(value, {updateOn: 'blur'})); new FormControl(value, {updateOn: 'blur', asyncValidators: [myValidator]})
RxJS 5.5
我们已经把使用的RxJS更新到5.5.2或更高版本。这个新发布的RxJS可以让开发完全摆脱之前导入机制的副作用,因为我们以新的lettable operators的方式使用了RxJS。这些新操作符消除了副作用,以及之前导入操作符中“patch”方法存在代码切割和“tree shaking”等问题。
不再这样:
import { Observable } from 'rxjs/Observable'; import 'rxjs/add/operator/map'; import 'rxjs/add/operator/filter'; names = allUserData .map(user => user.name) .filter(name => name);
现在这样:
import { Observable } from 'rxjs/Observable'; import { map, filter } from 'rxjs/operators'; names = allUserData.pipe( map(user => user.name), filter(name => name), );
此外,RxJS现在发行了一个使用ECMAScript Modules的版本。新Angular CLI会默认拉取这个新版本,让包大小有明显减小。如果你没使用Angular CLI,那还是应该指向这个新版本。相关文档在此:Build and Treeshaking。
新的路由器生成周期事件
我们给路由器添加了新的生命周期事件,让开发者可以跟踪running guard启动到激活完成的各个阶段。这些事件可在有子组件更新时,在一个特定的路由器出口上展示加载动画,或者测量性能。
新的事件(按顺序)是GuardsCheckStart、ChildActivationStart、ActivationStart、GuardsCheckEnd、ResolveStart、ResolveEnd、ActivationEnd、ChildActivationEnd。以下是一个使用这些事件启动和停止加载动画的示例:
class MyComponent { constructor(public router: Router, spinner: Spinner) { router.events.subscribe(e => { if (e instanceof ChildActivationStart) { spinner.start(e.route); } else if (e instanceof ChildActivationEnd) { spinner.end(e.route); } }); } }
如何更新
这里有Angular Update Guide,告诉你整个过程,以及更新前要做哪些事,还有更新应用的步骤,以及做好迎接Angular未来版本的准备等信息。
我们删除很多以前废弃的API(如OpaqueToken),也公布了一些新的废弃项。以上指南会详细介绍这些变更。
相关推荐:
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Les utilisateurs ont peut-être vu le terme wapi lorsqu'ils utilisent Internet, mais pour certaines personnes, ils ne savent certainement pas ce qu'est wapi. Ce qui suit est une introduction détaillée pour aider ceux qui ne le savent pas à comprendre. Qu'est-ce que wapi : Réponse : wapi est l'infrastructure pour l'authentification et la confidentialité du réseau local sans fil. C'est le cas des fonctions telles que l'infrarouge et le Bluetooth, qui sont généralement couvertes à proximité de lieux tels que les immeubles de bureaux. Fondamentalement, ils appartiennent à un petit département, la portée de cette fonction n'est donc que de quelques kilomètres. Introduction connexe à Wapi : 1. Wapi est un protocole de transmission dans un réseau local sans fil. 2. Cette technologie peut éviter les problèmes de communication à bande étroite et permettre une meilleure communication. 3. Un seul code est nécessaire pour transmettre le signal.

Pubg, également connu sous le nom de PlayerUnknown's Battlegrounds, est un jeu de tir Battle Royale très classique qui a attiré beaucoup de joueurs depuis sa popularité en 2016. Après le récent lancement du système win11, de nombreux joueurs souhaitent y jouer sur win11. Suivons l'éditeur pour voir si win11 peut jouer à pubg. Win11 peut-il jouer à Pubg ? Réponse : Win11 peut jouer à Pubg. 1. Lorsque Win11 a été lancé pour la première fois, de nombreux joueurs ont été bannis de Pubg car Win11 devait activer TPM. 2. Cependant, sur la base des commentaires des joueurs, Blue Hole a résolu ce problème et vous pouvez désormais jouer à Pubg normalement dans Win11. 3. Si vous rencontrez un pub

Angular.js est une plateforme JavaScript librement accessible pour créer des applications dynamiques. Il vous permet d'exprimer rapidement et clairement divers aspects de votre application en étendant la syntaxe HTML en tant que langage de modèle. Angular.js fournit une gamme d'outils pour vous aider à écrire, mettre à jour et tester votre code. De plus, il offre de nombreuses fonctionnalités telles que le routage et la gestion des formulaires. Ce guide expliquera comment installer Angular sur Ubuntu24. Tout d’abord, vous devez installer Node.js. Node.js est un environnement d'exécution JavaScript basé sur le moteur ChromeV8 qui vous permet d'exécuter du code JavaScript côté serveur. Être à Ub

Après la mise à jour vers la dernière version de Win11, de nombreux utilisateurs constatent que le son de leur système a légèrement changé, mais ils ne savent pas comment le régler. Aujourd'hui, ce site vous présente une introduction à la dernière méthode de réglage du son Win11 pour votre ordinateur. Ce n'est pas difficile à utiliser. Et les choix sont variés, venez les télécharger et les essayer. Comment régler le son du dernier système informatique Windows 11 1. Tout d'abord, cliquez avec le bouton droit sur l'icône du son dans le coin inférieur droit du bureau et sélectionnez « Paramètres de lecture ». 2. Entrez ensuite les paramètres et cliquez sur « Haut-parleur » dans la barre de lecture. 3. Cliquez ensuite sur « Propriétés » en bas à droite. 4. Cliquez sur la barre d'options "Améliorer" dans les propriétés. 5. A ce moment, si le √ devant « Désactiver tous les effets sonores » est coché, annulez-le. 6. Après cela, vous pouvez sélectionner les effets sonores ci-dessous à définir et cliquer sur

Le comportement d'affichage par défaut des composants du framework Angular ne concerne pas les éléments au niveau du bloc. Ce choix de conception favorise l'encapsulation des styles de composants et encourage les développeurs à définir consciemment la manière dont chaque composant est affiché. En définissant explicitement l'affichage des propriétés CSS, l'affichage des composants angulaires peut être entièrement contrôlé pour obtenir la mise en page et la réactivité souhaitées.

PyCharm est un puissant environnement de développement intégré Python doté de fonctions et d'outils riches qui peuvent considérablement améliorer l'efficacité du développement. Parmi elles, la fonction de remplacement est l'une des fonctions fréquemment utilisées dans le processus de développement, qui peut aider les développeurs à modifier rapidement le code et à améliorer la qualité du code. Cet article présentera en détail la fonction de remplacement de PyCharm, combinée à des exemples de code spécifiques, pour aider les novices à mieux maîtriser et utiliser cette fonction. Introduction à la fonction de remplacement La fonction de remplacement de PyCharm peut aider les développeurs à remplacer rapidement le texte spécifié dans le code

De nombreux utilisateurs ont des pilotes d'imprimante installés sur leur ordinateur mais ne savent pas comment les trouver. Par conséquent, aujourd'hui, je vous propose une introduction détaillée à l'emplacement du pilote d'imprimante dans l'ordinateur. Pour ceux qui ne le savent pas encore, voyons où trouver le pilote d'imprimante lors de la réécriture du contenu sans modifier la signification originale. vous devez La langue est réécrite en chinois et la phrase originale n'a pas besoin d'apparaître. Tout d'abord, il est recommandé d'utiliser un logiciel tiers pour rechercher 2. Recherchez « Boîte à outils » dans le coin supérieur droit. cliquez sur "Gestionnaire de périphériques" ci-dessous. Phrase réécrite : 3. Recherchez et cliquez sur "Gestionnaire de périphériques" en bas. 4. Ensuite, ouvrez "File d'attente d'impression" et recherchez votre imprimante. Cette fois, il s'agit du nom et du modèle de votre imprimante. 5. Cliquez avec le bouton droit sur le périphérique d'impression et vous pouvez le mettre à jour ou le désinstaller.

Dogecoin est une crypto-monnaie créée sur la base de mèmes Internet, sans plafond d'approvisionnement fixe, avec des délais de transaction rapides, des frais de transaction faibles et une grande communauté de mèmes. Les utilisations incluent les petites transactions, les pourboires et les dons de bienfaisance. Cependant, son offre illimitée, la volatilité du marché et son statut de pièce de monnaie farfelue comportent également des risques et des inquiétudes. Qu’est-ce que Dogecoin ? Dogecoin est une crypto-monnaie créée à partir de mèmes et de blagues Internet. Origine et histoire : Dogecoin a été créé en décembre 2013 par deux ingénieurs logiciels, Billy Markus et Jackson Palmer. Inspiré du mème alors populaire « Doge », une photo comique représentant un Shiba Inu avec un anglais approximatif. Caractéristiques et avantages : Offre illimitée : contrairement à d’autres crypto-monnaies telles que Bitcoin
