Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
angular2ÈëÃÅ£¬¾ÍÕâһƪ¾Í¹»ÁË
 
×÷ÕߣºÈ«Õ»Åª³±¶ù
  1452  次浏览      27
  2020-2-26
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜAngular 2 Ó¦ÓóÌÐòÓ¦ÓÃµÄ 8 ¸ö×é³É²¿·Ö,ÒÔ¼°Ã¿¸ö²¿·ÖÊÇÈçºÎÏ໥¹¤×÷µÄ£¬Ï£Íû¶ÔÄúÄÜÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚ²©¿Í¼ÒÔ°,ÓÉ»ðÁú¹ûÈí¼þAlice±à¼­ÍƼö¡£

±³¾°Óë¸ÅÄ

AngularJS2 ÊÇÒ»¿î¿ªÔ´JavaScript¿â£¬ÓÉGoogleά»¤£¬ÓÃÀ´Ð­Öúµ¥Ò»Ò³ÃæÓ¦ÓóÌÐòÔËÐС£

AngularJS2 ÊÇ Angular 1.x µÄÉý¼¶°æ±¾£¬ÐÔÄÜÉϵõ½ÏÔÖøµÄÌá¸ß£¬ÄܺܺõÄÖ§³Ö Web ¿ª·¢×é¼þ¡£

AngularJS2 ·¢²¼ÓÚ2016Äê9Ô·ݣ¬ËüÊÇ»ùÓÚES6À´¿ª·¢µÄ¡£

Angular2.xÓëAngular1.x µÄÇø±ð

Angular2.xÓëAngular1.x µÄÇø±ðÀàËÆ Java ºÍ JavaScript »òÕß˵ÊÇÀ×·æÓëÀ×·åËþµÄÇø±ð£¬ËùÒÔÔÚѧϰAngular2.xʱ´ó¼ÒÐèÒª×öºÃÖØÐÂѧϰһÃÅÓïÑÔµÄÐÄÀï×¼±¸¡£

¿ª¹¤Ç°µÄ×¼±¸¹¤×÷

ѧϰAngularJS2ǰ£¬ÄãÐèÒª¾ß±¸»ù±¾µÄǰ¶Ë»ù´¡£ºHTML¡¢CSS¡¢JavaScript¡£´ËÍâÄ㻹ÐèÒªÁ˽â NPM ¼° TypeScript¡£

Angular 2 ¼Ü¹¹

Angular 2 Ó¦ÓóÌÐòÓ¦ÓÃÖ÷ÒªÓÉÒÔÏ 8 ¸ö²¿·Ö×é³É£º

1¡¢Ä£¿é (Modules)

2¡¢×é¼þ (Components)

3¡¢Ä£°å (Templates)

4¡¢ÔªÊý¾Ý (Metadata)

5¡¢Êý¾Ý°ó¶¨ (Data Binding)

6¡¢Ö¸Áî (Directives)

7¡¢·þÎñ (Services)

8¡¢ÒÀÀµ×¢Èë (Dependency Injection)

ÏÂÃæ¿´Ã¿¸ö²¿·ÖÊÇÈçºÎÏ໥¹¤×÷µÄ£º

Ä£°å (Templates)ÊÇÓÉ Angular À©Õ¹µÄ HTML Óï·¨×é³É£¬×é¼þ (Components)ÀàÓÃÀ´¹ÜÀíÕâЩģ°å£¬Ó¦ÓÃÂß¼­²¿·Öͨ¹ý·þÎñ (Services)À´Íê³É£¬È»ºóÔÚÄ£¿éÖдò°ü·þÎñÓë×é¼þ£¬×îºóͨ¹ýÒýµ¼¸ùÄ£¿éÀ´Æô¶¯Ó¦Óá£

½ÓÏÂÀ´¶ÔÒÔÉÏ 8 ¸ö²¿·Ö·Ö¿ª½âÎö£º

1.Ä£¿é

Ä£¿éÓÖÒ»¿é´úÂë×é³É£¬¿ÉÓÃÓÚÖ´ÐÐÒ»¸ö¼òµ¥µÄÈÎÎñ¡£

Angular Ó¦ÓÃÊÇÓÉÄ£¿é»¯µÄ£¬ËüÓÐ×Ô¼ºµÄÄ£¿éϵͳ£ºNgModules¡£

ÿ¸ö Angular Ó¦¸ÃÖÁÉÙÒªÓÐÒ»¸öÄ£¿é(¸ùÄ£¿é)£¬Ò»°ã¿ÉÒÔÃüÃûΪ£ºAppModule¡£

Angular Ä£¿éÊÇÒ»¸ö´øÓÐ @NgModule ×°ÊÎÆ÷µÄÀ࣬Ëü½ÓÊÕÒ»¸öÓÃÀ´ÃèÊöÄ£¿éÊôÐÔµÄÔªÊý¾Ý¶ÔÏó¡£

¼¸¸öÖØÒªµÄÊôÐÔÈçÏ£º

declarations £¨ÉùÃ÷£© - ÊÓͼÀàÊôÓÚÕâ¸öÄ£¿é¡£ Angular ÓÐÈýÖÖÀàÐ͵ÄÊÓͼÀࣺ ×é¼þ ¡¢ Ö¸Áî ºÍ ¹ÜµÀ ¡£

exports - ÉùÃ÷£¨ declaration £©µÄ×Ó¼¯£¬¿ÉÓÃÓÚÆäËüÄ£¿éÖеÄ×é¼þÄ£°å ¡£

imports - ±¾Ä£¿é×é¼þÄ£°åÖÐÐèÒªÓÉÆäËüµ¼³öÀàµÄÄ£¿é¡£

providers - ·þÎñµÄ´´½¨Õß¡£±¾Ä£¿é°ÑËüÃǼÓÈëÈ«¾ÖµÄ·þÎñ±íÖУ¬ÈÃËüÃÇÔÚÓ¦ÓÃÖеÄÈκβ¿·Ö¶¼¿É±»·ÃÎʵ½¡£

bootstrap - Ó¦ÓõÄÖ÷ÊÓͼ£¬³ÆÎª¸ù×é¼þ£¬ËüÊÇËùÓÐÆäËüÓ¦ÓÃÊÓͼµÄËÞÖ÷¡£Ö»ÓиùÄ£¿éÐèÒªÉèÖà bootstrap ÊôÐÔÖС£

Ò»¸ö×î¼òµ¥µÄ¸ùÄ£¿é£¬eg:

import{NgModule}from'@angular/core';
import{BrowserModule}from'@angular/platform-browser';
@NgModule({imports: [BrowserModule],
providers: [Logger],
declarations: [AppComponent],
exports: [AppComponent],
bootstrap: [AppComponent]})exportclassAppModule{}

½ÓÏÂÀ´Í¨¹ýÒýµ¼¸ùÄ£¿éÀ´Æô¶¯Ó¦Ó㬿ª·¢¹ý³Ìͨ³£ÔÚ main.ts ÎļþÖÐÀ´Òýµ¼ AppModule £º

import{platformBrowserDynamic}from'@angular
/platform-browser-dynamic';
import{AppModule}from'./app.module'; platformBrowserDynamic().
bootstrapModule(AppModule);

2.×é¼þ(Components)

×é¼þÊÇÒ»¸öÄ£°åµÄ¿ØÖÆÀàÓÃÓÚ´¦ÀíÓ¦ÓúÍÂß¼­Ò³ÃæµÄÊÓͼ²¿·Ö¡£

×é¼þÊǹ¹³É Angular Ó¦ÓõĻù´¡ºÍºËÐÄ£¬¿ÉÓÃÓÚÕû¸öÓ¦ÓóÌÐòÖС£

×é¼þÖªµÀÈçºÎäÖȾ×Ô¼º¼°ÅäÖÃÒÀÀµ×¢Èë¡£

×é¼þͨ¹ýһЩÓÉÊôÐԺͷ½·¨×é³ÉµÄ API ÓëÊÓͼ½»»¥¡£

´´½¨ Angular ×é¼þµÄ·½·¨ÓÐÈý²½£º

´Ó @angular/core ÖÐÒýÈë Component ÐÞÊÎÆ÷

½¨Á¢Ò»¸öÆÕͨµÄÀ࣬²¢Óà @Component ÐÞÊÎËü

ÔÚ @Component ÖУ¬ÉèÖà selector ×Ô¶¨Òå±êÇ©£¬ÒÔ¼° template Ä£°å

3.Ä£°å(Templates)

AngularÄ£°åµÄĬÈÏÓïÑÔ¾ÍÊÇHTML¡£

ÎÒÃÇ¿ÉÒÔͨ¹ýʹÓÃÄ£°åÀ´¶¨Òå×é¼þµÄÊÓͼÀ´¸æËß Angular ÈçºÎÏÔʾ×é¼þ¡£ÒÔÏÂÊÇÒ»¸ö¼òµ¥ÊÇʵÀý£º

<div>ÍøÕ¾µØÖ· : {{site}}</div>

4.ÔªÊý¾Ý(Metadata)

ÔªÊý¾Ý¸æËß Angular ÈçºÎ´¦ÀíÒ»¸öÀà¡£

¿¼ÂÇÒÔÏÂÇé¿öÎÒÃÇÓÐÒ»¸ö×é¼þ½Ð×÷ Component £¬ËüÊÇÒ»¸öÀֱ࣬µ½ÎÒÃǸæËß Angular ÕâÊÇÒ»¸ö×é¼þΪֹ¡£

Äã¿ÉÒÔ°ÑÔªÊý¾Ý¸½¼Óµ½Õâ¸öÀàÉÏÀ´¸æËß Angular Component ÊÇÒ»¸ö×é¼þ¡£

ÔÚ TypeScript ÖУ¬ÎÒÃÇÓà װÊÎÆ÷ (decorator) À´¸½¼ÓÔªÊý¾Ý¡£

eg£º

@Component({
selector : 'mylist',
template : '<h2>²ËÄñ½Ì³Ì</h2>'
directives : [ComponentDetails]

})
export class ListComponent{...}

@Component ×°ÊÎÆ÷ÄܽÓÊÜÒ»¸öÅäÖöÔÏ󣬲¢°Ñ½ôËæÆäºóµÄÀà±ê¼Ç³ÉÁË×é¼þÀà¡£

Angular »á»ùÓÚÕâЩÐÅÏ¢´´½¨ºÍչʾ×é¼þ¼°ÆäÊÓͼ¡£

@Component ÖеÄÅäÖÃÏî˵Ã÷£º

selector - Ò»¸ö css Ñ¡ÔñÆ÷£¬Ëü¸æËß Angular ÔÚ ¸¸¼¶ HTML ÖÐѰÕÒÒ»¸ö <mylist> ±êÇ©£¬È»ºó´´½¨¸Ã×é¼þ£¬²¢²åÈë´Ë±êÇ©ÖС£

templateUrl - ×é¼þ HTML Ä£°åµÄµØÖ·¡£

directives - Ò»¸öÊý×飬°üº¬ ´Ë Ä£°åÐèÒªÒÀÀµµÄ×é¼þ»òÖ¸Áî¡£

providers - Ò»¸öÊý×飬°üº¬×é¼þËùÒÀÀµµÄ·þÎñËùÐèÒªµÄÒÀÀµ×¢ÈëÌṩÕß¡£

5.Êý¾Ý°ó¶¨(Data binding)

Êý¾Ý°ó¶¨ÎªÓ¦ÓóÌÐòÌṩÁËÒ»ÖÖ¼òµ¥¶øÒ»Öµķ½·¨À´ÏÔʾÊý¾ÝÒÔ¼°Êý¾Ý½»»¥£¬ËüÊǹÜÀíÓ¦ÓóÌÐòÀïÃæÊýÖµµÄÒ»ÖÖ»úÖÆ¡£

ͨ¹ýÕâÖÖ»úÖÆ£¬¿ÉÒÔ´ÓHTMLÀïÃæÈ¡ÖµºÍ¸³Öµ£¬Ê¹µÃÊý¾ÝµÄ¶Áд£¬Êý¾ÝµÄ³Ö¾Ã»¯²Ù×÷±äµÃ¸ü¼Ó¼òµ¥¿ì½Ý¡£

ÈçͼËùʾ£¬Êý¾Ý°ó¶¨µÄÓï·¨ÓÐËÄÖÖÐÎʽ¡£Ã¿ÖÖÐÎʽ¶¼ÓÐÒ»¸ö·½Ïò¡ª¡ª´Ó DOM À´¡¢µ½ DOM È¥¡¢Ë«Ïò£¬¾ÍÏñͼÖеļýÍ·ËùʾÒâµÄ¡£

angular2ÈëÃÅ£¬¾ÍÕâһƪ¾Í¹»ÁË

²åÖµ: ÔÚ HTML ±êÇ©ÖÐÏÔʾ×é¼þÖµ¡£

<h3>
{{title}}
<img src="{{ImageUrl}}">
</h3>

ÊôÐÔ°ó¶¨: °ÑÔªËØµÄÊôÐÔÉèÖÃΪ×é¼þÖÐÊôÐÔµÄÖµ¡£

<img [src]="userImageUrl">

ʼþ°ó¶¨: ÔÚ×é¼þ·½·¨Ãû±»µã»÷ʱ´¥·¢¡£

<button (click)="onSave()">±£´æ</button>

Ë«Ïò°ó: ʹÓÃAngularÀïµÄNgModelÖ¸Áî¿ÉÒÔ¸ü±ã½ÝµÄ½øÐÐË«Ïò°ó¶¨¡£

<input [value]="currentUser.firstName"
(input)="currentUser.firstName=$event.
target.value" >

6.Ö¸ÁDirectives£©

AngularÄ£°åÊǶ¯Ì¬µÄ ¡£µ± Angular äÖȾËüÃÇʱ£¬Ëü»á¸ù¾ÝÖ¸Áî¶Ô DOM ½øÐÐÐ޸ġ£

Ö¸ÁîÊÇÒ»¸ö´øÓÐ"Ö¸ÁîÔªÊý¾Ý"µÄÀà¡£ÔÚ TypeScript ÖУ¬ÒªÍ¨¹ý @Directive ×°ÊÎÆ÷°ÑÔªÊý¾Ý¸½¼Óµ½ÀàÉÏ¡£

ÔÚAngularÖаüº¬ÒÔÏÂÈýÖÖÀàÐ͵ÄÖ¸Á

ÊôÐÔÖ¸ÁÒÔÔªËØµÄÊôÐÔÐÎʽÀ´Ê¹ÓõÄÖ¸Áî¡£

½á¹¹Ö¸ÁÓÃÀ´¸Ä±äDOMÊ÷µÄ½á¹¹

×é¼þ£º×÷ΪָÁîµÄÒ»¸öÖØÒª×ÓÀ࣬×é¼þ±¾ÖÊÉÏ¿ÉÒÔ¿´×÷ÊÇÒ»¸ö´øÓÐÄ£°åµÄÖ¸Áî¡£

<li *ngFor="let site of sites"></li>
<site-detail *ngIf="selectedSite"></site-detail>

*ngFor ¸æËß Angular Ϊ sites ÁбíÖеÄÿ¸öÏîÉú³ÉÒ»¸ö <li> ±êÇ©¡£

*ngIf ±íʾֻÓÐÔÚÑ¡ÔñµÄÏî´æÔÚʱ£¬²Å»á°üº¬ SiteDetail ×é¼þ¡£

7.·þÎñ(Services)

Angular2ÖеķþÎñÊÇ·â×°ÁËÄ³Ò»ÌØ¶¨¹¦ÄÜ£¬²¢ÇÒ¿ÉÒÔͨ¹ý×¢ÈëµÄ·½Ê½¹©ËûÈËʹÓõĶÀÁ¢Ä£¿é¡£

·þÎñ·ÖΪºÜ¶àÖÖ£¬°üÀ¨£ºÖµ¡¢º¯Êý£¬ÒÔ¼°Ó¦ÓÃËùÐèµÄÌØÐÔ¡£

ÀýÈ磬¶à¸ö×é¼þÖгöÏÖÁËÖØ¸´´úÂëʱ£¬°ÑÖØ¸´´úÂëÌáÈ¡µ½·þÎñÖÐʵÏÖ´úÂ븴Óá£

ÒÔÏÂÊǼ¸ÖÖ³£¼ûµÄ·þÎñ£º

ÈÕÖ¾·þÎñ

Êý¾Ý·þÎñ

ÏûÏ¢×ÜÏß

˰¿î¼ÆËãÆ÷

Ó¦ÓóÌÐòÅäÖÃ

ÒÔÏÂʵÀýÊÇÒ»¸öÈÕÖ¾·þÎñ£¬ÓÃÓÚ°ÑÈÕÖ¾¼Ç¼µ½ä¯ÀÀÆ÷µÄ¿ØÖÆÌ¨£º

export class Logger {
log(msg: any) { console.log(msg); }
error(msg: any) { console.error(msg); }
warn(msg: any) { console.warn(msg); }
}

8.ÒÀÀµ×¢Èë

¿ØÖÆ·´×ª£¨Inversion of Control£¬ËõдΪIoC£©£¬ÊÇÃæÏò¶ÔÏó±à³ÌÖеÄÒ»ÖÖÉè¼ÆÔ­Ôò£¬¿ÉÒÔÓÃÀ´¼õµÍ¼ÆËã»ú´úÂëÖ®¼äµÄñîºÏ¶È¡£ÆäÖÐ×î³£¼ûµÄ·½Ê½½Ð×öÒÀÀµ×¢È루Dependency Injection£¬¼ò³ÆDI£©£¬»¹ÓÐÒ»ÖÖ·½Ê½½Ð"ÒÀÀµ²éÕÒ"£¨Dependency Lookup£©¡£

ͨ¹ý¿ØÖÆ·´×ª£¬¶ÔÏóÔÚ±»´´½¨µÄʱºò£¬ÓÉÒ»¸öµ÷¿ØÏµÍ³ÄÚËùÓжÔÏóµÄÍâ½çʵÌ壬½«ÆäËùÒÀÀµµÄ¶ÔÏóµÄÒýÓô«µÝ¸øËü¡£Ò²¿ÉÒÔ˵£¬ÒÀÀµ±»×¢Èëµ½¶ÔÏóÖС£

ÔÚ´«Í³µÄ¿ª·¢Ä£Ê½ÖУ¬µ÷ÓÃÕ߸ºÔð¹ÜÀíËùÓжÔÏóµÄÒÀÀµ£¬Ñ­»·ÒÀÀµÒ»Ö±ÊÇÃÎ÷Ê£¬¶øÔÚÒÀÀµ×¢ÈëģʽÖУ¬Õâ¸ö¹ÜÀíȨ½»¸øÁË×¢ÈëÆ÷(Injector)£¬ËüÔÚÈí¼þÔËÐÐʱ¸ºÔðÒÀÀµ¶ÔÏóµÄÌæ»»£¬¶ø²»ÊÇÔÚ±àÒëʱ¡£ÕâÖÖ¿ØÖÆ·´×ª£¬ÔËÐÐ×¢ÈëµÄÌØµã¼´ÊÇÒÀÀµ×¢ÈëµÄ¾«»ªËùÔÚ¡£

Angular ÄÜͨ¹ý²é¿´¹¹Ô캯ÊýµÄ²ÎÊýÀàÐÍ£¬À´µÃÖª×é¼þÐèÒªÄÄЩ·þÎñ¡£ ÀýÈ磬 SiteListComponent ×é¼þµÄ¹¹Ô캯ÊýÐèÒªÒ»¸ö SiteService:

constructor(private service: HeroService) { }

µ± Angular ´´½¨×é¼þʱ£¬»áÊ×ÏÈΪ×é¼þËùÐèµÄ·þÎñÕÒÒ»¸ö×¢ÈëÆ÷£¨ Injector £© ¡£

×¢ÈëÆ÷ÊÇÒ»¸öά»¤·þÎñʵÀýµÄÈÝÆ÷£¬´æ·Å×ÅÒÔǰ´´½¨µÄʵÀý¡£

Èç¹ûÈÝÆ÷Öл¹Ã»ÓÐËùÇëÇóµÄ·þÎñʵÀý£¬×¢ÈëÆ÷¾Í»á´´½¨Ò»¸ö·þÎñʵÀý£¬²¢ÇÒÌí¼Óµ½ÈÝÆ÷ÖУ¬È»ºó°ÑÕâ¸ö·þÎñ·µ»Ø¸ø Angular ¡£

µ±ËùÓеķþÎñ¶¼±»½âÎöÍê²¢·µ»ØÊ±£¬ Angular »áÒÔÕâЩ·þÎñΪ²ÎÊýÈ¥µ÷ÓÃ×é¼þµÄ¹¹Ô캯Êý¡£ Õâ¾ÍÊÇÒÀÀµ×¢Èë ¡£

 
   
1452 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
Ïà¹ØÎĵµ

ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì