javascript - Ktoré aspekty Angular 2 by som mal mať na pamäti pri tvorbe aplikácie v Angular 1?


Čoskoro budem musieť prepracovať relatívne veľkú/komplexnú webovú aplikáciu v Angular 1.x. Ešte sa musím naučiť Angular 1.x. Viem, že Angular 2.x bude úplne nekompatibilný s 1.x, ale je niečo, čo môžem urobiť, aby som sa pripravil na prepis do Angular 2.x?

Napríklad:

  • Štruktúra kódu: môžem oddeliť kód, ktorý bude musieť byť vyhodený, od kódu, ktorý by mohol byť znovu použiteľný? Aktuálna webová aplikácia nemá REST API, takže predpokladám, že aspoň REST API, ktoré napíšem, bude znovu použiteľné pre verziu 2.x. Ale mám obavy ohľadom kódu na strane klienta.

  • Výber jazyka: pravdepodobne budem požiadaný používať čistý JS (verziu, ktorú prehliadač priamo spracúva), ale bolo by múdre použiť namiesto toho Typescript na písanie aplikácie Angular 1.x, keďže práve v ňom je napísaný Angular 2.x?

  • Niečo ešte?

Odpoveď č. 1

Odporúčal by som používať direktívy s vlastným kontrolérom založeným na 'controllerAs'. Týmto sa priblížite k štýlu komponentov Angular 2.0. V skutočnosti je to veľmi podobné. Tu je príklad toho, čo mám na mysli:

http://www.syntaxsuccess.com/viewarticle/migrating-from-angular-1.x-to-angular-2.0

Odpoveď č. 2

Neexistuje žiadny dôvod písať Angular 2.x v Typescripte, okrem toho ak to preferujete alebo chcete prispieť do kódu, alebo ak niečo nefunguje, prejdite kódom Angular 2.x, aby ste mu lepšie porozumeli. Typescript nespôsobuje, že by JS bol rýchlejší alebo podobne, len ponúka statické typovanie, ktoré sa používa na podporu vývojárskych nástrojov, ako je IDE, ktoré používate. Myslite na Visual Studio.

Navrhol by som, aby ste začali používať ES6, ktorý zavádza triedy (no, syntaktický cukor, JS je stále JS), ktoré Angular 2 používa, a to použitím transpileru na prevod kódu ES6 na ES5, a ktoré, podľa môjho názoru, bude používať čoraz viac ľudí (ku hrôze Crockforda a iných).

Nepoužívajte zložité direktívové veci ako transclude, compile/pre-link a podobne, udržujte to jednoduché, pretože Angular 2.x sa zameriava na zjednodušenie spôsobu, ako zmiasť programátorov. Nie sú to úplne tie isté veci, ale Angular 2.x bude založený na komponentoch, čo je niečo podobné direktívam v spôsobe, akým používajú šablóny/pohľady.

Oboznámte sa s importom/exportom v ES6.

Vyhýbajte sa používaniu $scope, bude odstránený v jeho súčasnej forme.

V skutočnosti som o tom napísal o niečo podrobnejší blogový príspevok, http://www.alajmovic.com/2015/07/18/preparing-for-angular-2.html