| ¸Õ¿ªÊ¼Ð´ÉÌÒµ´úÂëµÄʱºò£¬ÎÒʹÓõÄÊÇ
jQuery¡£Ê¹Óà jQuery À´ÊµÏÖ¹¦ÄܺÜÈÝÒ×£¬ÕÒµ½Ò»¸öÏàÓ¦µÄ jQuery ²å¼þ£¬ÔÙ±àдÏàÓ¦µÄ¹¦Äܼ´¿É¡£¶ÔÓÚµ¥Ò³ÃæÓ¦ÓÃÒàÊÇÈç´Ë£¬Ñ°ÕÒÒ»¸öÏศÖúµÄ²å¼þ¾Í¿ÉÒÔÁË£¬Èç
jQuery Mobile¡£

¾¡¹ÜÔÚ½ñÌì¿´À´£¬jQuery Mobile ÒѾ²»ÊʺÏÓÚ½ñÌìµÄ¶àÊý³¡¾°ÁË¡£Õâ¸öÖ÷ÒªÔÒòÊÇ£¬µ±Ê±µÄÓû§¶ÔÓÚÒÆ¶¯
Web Ó¦ÓõÄÀí½âºÍ½ñÌìÊDz»Í¬µÄ¡£ËûÃǾõµÃÒÆ¶¯ Web Ó¦ÓþÍÊÇÕë¶ÔÒÆ¶¯É豸¶ø¶©ÖƵģ¬Òƶ¯É豸µÄ UI¡¢¸ü¿ìµÄ¼ÓÔØËٶȵȵȡ£¶øÔÚ½ñÌ죬¶àÊýµÄÒÆ¶¯
Web Ó¦Ó㬼¸ºõ¶¼Êǵ¥Ò³ÃæÓ¦ÓÃÁË¡£
¹ýÈ¥£¬¼´Ê¹ÎÒÃÇÏë´´½¨Ò»¸öµ¥Ò³ÃæÓ¦Ó㬿ÉÄÜҲûÓÐÒ»¸öºÏÊʵķ½°¸¡£¶øÔÚ½ñÌ죬¿ÉÑ¡ÔñµÄ·½°¸¾Í¶àÁË£¨PS£º²Î¼û¡¶µÚËÄÕ£ºÑ§Ï°Ç°¶ËÖ»ÐèÒªÈý¸öÔ¡¾¿ò¼Üƪ¡¿¡·£©¡£Ã¿¸öÈËÔÚ²»Í¬ÀàÐ͵ÄÏîÄ¿ÉÏ£¬Ò²»áÓв»Í¬µÄ·½°¸£¬Ã»ÓÐÒ»¸ö¿ò¼ÜÄܽâ¾öËùÓеÄÎÊÌâ
¶ÔÓÚ¹¤×÷À´Ëµ£¬ÎÒ¸üÏ£ÍûµÄÊÇÒ»¸öÍêÕûµÄ½â¾ö·½°¸¡£
¶ÔÓÚ±à³ÌÌåÑéÀ´Ëµ£¬ÎÒϲ»¶Ò»µãµãµÄÈ¥´´ÔìһЩÂÖ×Ó¡£
µ±ÎÒÃÇ»áÓõĿò¼ÜÔ½¶àµÄʱºò£¬ Ëù»¨·ÑµÄʱ¼ä¾ñÔñÒ²¾ÍÔ½¶à¡£¶øµ¥Ò³ÃæÓ¦ÓõͼÓÐһЩÏàͬµÄÔªËØ£¬¶ÔÓÚÕâЩ»ù±¾ÔªËصÄÀí½â£¬¿ÉÒÔÈÃÎÒÃǸü¿ìµÄÊÊºÏÆäËû¿ò¼Ü¡£
µ¥Ò³ÃæÓ¦ÓõÄÑݽø
ÎÒ½Ó´¥µ½µ¥Ò³ÃæÓ¦ÓõÄʱºò£¬Ëü¿´ÆðÀ´¾ÍÏñÊǽ«ËùÓеÄÄÚÈÝ·ÅÔÚÒ»¸öÒ³ÃæÉÏô¡£

Ö»ÐèÒªÔÚÒ»¸ö HTML дºÃËùÐèÒªµÄ¸÷¸öÄ£°å£¬²¢ÔÚ²»Í¬µÄÒ³ÃæÉÏ data-role ±íÃ÷ÕâÊǸöÒ³Ãæ£¨»ùÓÚ
jQuery Mobile£©¡ª¡ªÃ¿¸ö¶¨ÒåµÄÒ³Ãæ¶¼ºÍ½ñÌìµÄÒÆ¶¯Ó¦ÓõÄģʽÏàËÆ£¬ÓÐ header¡¢content¡¢footer
Èý¼þÌס£ÔÙÓà id À´¶¨ÒåºÃÏàÓ¦µÄ·ÓÉ¡£
<div data-role="page" id="foo"> ... </div> |
ÕâÑùÎÒÃǾÍÔÚÒ»¸ö HTML Àï·µ»ØÁËËùÓеÄÒ³ÃæÁË¡£Ëæºó£¬Ö»ÐèÒªÔÚÔÚÈë¿Ú´¦µÄ href ÀдºÃÏàÓ¦µÄ ID
¼´¿É¡£
<a href="#foo">Ìø×ªµ½foo</a> |
µ±ÎÒÃǵã»÷ÏàÓ¦µÄÁ´½Óʱ£¬¾Í»áÇл»µ½ HTML ÖÐÏàÓ¦µÄ ID¡£ÕâÖÖ¼òµ¥µÄµ¥Ò³ÃæÓ¦Óûù±¾ÉϾÍÊÇÒ»¸öÀëÏßÓ¦ÓÃÁË£¬Ö»ÊʺÏÓÚ¼òµ¥µÄ³¡¾°£¬¿ÉÊÇËü´øÓе¥Ò³ÃæÓ¦ÓõĻù±¾ÌØÐÔ¡£¶ø¸´ÔÓµÄÓ¦Óã¬ÔòÐèÒª´Ó·þÎñÆ÷»ñÈ¡Êý¾Ý¡£È»¶øÔçÆÚÊÜÏÞÓÚÒÆ¶¯ä¯ÀÀÆ÷ÐÔÄܵÄÓ°Ï죬ֻÄÜ´Ó·þÎñÆ÷»ñÈ¡ÏàÓ¦µÄ
HTML£¬²¢Ìæ»»µ±Ç°µÄÒ³Ãæ¡£
ÔÚÕâÑùµÄÓ¦ÓÃÖУ¬ÎÒÃÇ¿ÉÒÔ¿´µ½µ¥Ò³ÃæÓ¦ÓõĻù±¾ÔªËØ£º Ò³ÃæÂ·ÓÉ£¬Í¨¹ýijÖÖ·½Ê½£¬Èç URL hash À´ËµÃ÷±íÃ÷µ±Ç°ËùÔÚµÄÒ³Ãæ£¬²¢ÓµÓдÓÒ»¸öÒ³ÃæÌø×ªµ½ÁíÍâÒ»¸öÒ³ÃæµÄÈë¿Ú¡£

µ±Òƶ¯É豸µÄÐÔÄÜÔ½À´Ô½ºÃʱ£¬¿ª·¢ÕßÃÇ¿ªÊ¼ÔÚä¯ÀÀÆ÷ÀïäÖÈ¾Ò³Ãæ£º
ʹÓà jQuery À´×öÒ³Ãæ½»»¥
ʹÓà jQuery Ajax À´´Ó·þÎñ¶Ë»ñÈ¡Êý¾Ý
ʹÓà Backbone À´¸ºÔð·Óɼ° Model
ʹÓà Mustache ×÷Ϊģ°åÒýÇæÀ´äÖÈ¾Ò³Ãæ
ʹÓà Require.js À´¹ÜÀí²»Í¬µÄÄ£°å
ʹÓà LocalStorage À´´æ´¢Óû§µÄÊý¾Ý
ͨ¹ý½áºÏÕâһϵÁеŤ¾ß£¬ÎÒÃÇÖÕÓÚ¿ÉÒÔʵÏÖÒ»¸ö¸´Ôӵĵ¥Ò³ÃæÓ¦Ó᣶øÕâЩ£¬Ò²¾ÍÊǽñÌìÎÒÃÇ¿´µ½µÄµ¥Ò³ÃæÓ¦ÓõĻù±¾ÔªËØ¡£
ÎÒÃÇ¿ÉÒÔÔÚ Angular Ó¦Óá¢React Ó¦Óá¢Vue.js Ó¦Óà ¿´µ½ÕâЩ»ù±¾ÒªËصÄÓ°×Ó£¬È磺Vue
Router¡¢React Router¡¢Angular 2 RouterModule ¶¼ÊǸºÔð·ÓÉ£¨Ò³ÃæÌø×ª¼°Ä£¿é¹ØÏµ£©µÄ¡£ÔÚ
Vue ºÍ React ÀËüÃǶ¼ÊÇÓɸ¨ÖúÄ£¿éÀ´ÊµÏֵġ£ÒòΪ React Ö»ÊDzã UI ²ã£¬¶ø Vue.js
Ò²ÊÇÓÃÓÚ¹¹½¨Óû§½çÃæµÄ¿ò¼Ü¡£
·ÓÉ£ºÒ³ÃæÌø×ªÓëÄ£¿é¹ØÏµ

Ҫ˵Æð·ÓÉ£¬ÄÇ¿ÉÊÇÓкܳ¤µÄ¹ÊÊ¡£µ±ÎÒÃÇÔÚä¯ÀÀÆ÷ÉÏÊäÈëÍøÖ·µÄʱºò£¬ÎÒÃǾÍÒѾ¿ªÊ¼Á˸÷ÖÖ·ÓɵÄÂÃ;ÁË¡£
ä¯ÀÀÆ÷»á¼ì²éÓÐûÓÐÏàÓ¦µÄÓòÃû»º´æ£¬Ã»Óеϰ¾Í»áÒ»²ã²ãµÄÈ¥Ïò DNS·þÎñÆ÷ ѰÏò£¬×îºó·µ»Ø¶ÔÓ¦µÄ·þÎñÆ÷µÄ
IP µØÖ·¡£
½Ó×Å£¬ÎÒÃÇÇëÇóµÄÍøÕ¾½«»á½«ÓɶÔÓ¦ IP µÄ HTTP ·þÎñÆ÷´¦Àí£¬HTTP ·þÎñÆ÷»á¸ù¾ÝÇëÇóÀ´½»¸ø¶ÔÓ¦µÄÓ¦ÓÃÈÝÆ÷À´´¦Àí¡£
Ëæºó£¬ÎÒÃǵÄÓ¦Óý«¸ù¾ÝÓû§ÇëÇóµÄ·¾¶£¬½«ÇëÇ󽻸øÏàÓ¦µÄº¯ÊýÀ´´¦Àí¡£×îºó£¬·µ»ØÏàÓ¦µÄ HTML ºÍ×ÊÔ´ÎÄ»¯
µ±ÎÒÃÇ×öºǫ́ӦÓõÄʱºò£¬ÎÒÃÇÖ»ÐèÒª¹ØÐÄÉÏÊö¹ý³ÌÖеÄ×îºóÒ»²½¡£¼´£¬½«¶ÔÓ¦µÄ·Óɽ»¸ø¶ÔÓ¦µÄº¯ÊýÀ´´¦Àí¡£ÕâÒ»µã£¬ÔÚ²»Í¬µÄºǫ́¿ò¼ÜµÄ±íÏÖÐÎʽ¶¼ÊÇÏàËÆµÄ¡£

Èç Python ÓïÑÔÀïµÄ Web ¿ª·¢¿ò¼Ü Django µÄ URLConf£¬Ê¹ÓÃÕý¹æ±í´ïʽÀ´±íÕý
url(r'^articles/2003/$', views.special_case_2003), |
¶øÔÚ Laravel ÀÔòÊÇͨ¹ý²ÎÊýµÄÐÎʽÀ´³ÊÏÖ
Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) { // }); |
ËäÈ»±íÏÖÐÎʽÓÐһЩ²î±ð£¬µ«ÊÇ×ÜÌåÀ´ËµÒ²ÊDz¶àµÄ¡£¶ø¶ÔÓÚǰ¶ËÓ¦ÓÃÀ´Ëµ£¬Ò²ÊÇÈç´Ë£¬½«¶ÔÓ¦µÄ URL µÄÂß¼½»ÓɶÔÓ¦µÄº¯ÊýÀ´´¦Àí¡£
React Router ʹÓÃÁËÀàËÆÐÎʽÀ´´¦Àí·ÓÉ£¬´úÂëÈçÏÂËùʾ£º
<Route path="blog" component={BlogList} /> <Route path="blog/:id" component={BlogDetail} /> |
µ±Ò³ÃæÌø×ªµ½ blog µÄʱºò£¬»á½«¿ØÖÆÈ¨½«¸ø BlogList ×é¼þÀ´´¦Àí¡£
µ±Ò³ÃæÌø×ªµ½ blog/fasfasf-asdfsafd µÄʱºò£¬½«Æ¥Åäµ½Õâ¶þ¸ö·ÓÉ£¬²¢½»¸ø BlogDetail
×é¼þ À´´¦Àí¡£¶øÂ·ÓÉÖÐµÄ id Öµ£¬Ò²½«×÷Ϊ²ÎÊý BlogDetail ×é¼þÀ´´¦Àí¡£
ÏàËÆµÄ£¬¶ø Angular 2 µÄÐÎʽÔòÊÇ£º
{ path: 'blog', component: BlogListComponent }, { path: 'blog/:id', component: BlogDetailComponent }, |
ÏàËÆµÄ£¬ÕâÀïµÄ BlogDetailComponent ÊÇÒ»¸ö×é¼þ£¬path ÖÐµÄ id Öµ½«»á´«µÝ¸ø
BlogDetailComponent ×é¼þ¡£
´ÓÉÏÃæÀ´¿´£¬¾¡¹Ü±íÏÖÐÎʽÉÏÓÐËù²îÒ죬µ«ÊÇÆäÐÐΪÊÇÒ»ÖµģºÊ¹ÓùæÔòÒýÇæÀ´´¦Àí·ÓÉÓ뺯ÊýµÄ¹ØÏµ¡£ÉÔÓв»Í¬µÄÊÇ£¬ºǫ́µÄ·ÓÉÍêÈ«½»ÓÉ·þÎñÆ÷¶ËÀ´¿ØÖÆ£¬¶øÇ°¶ËµÄÇëÇóÔò¶¼ÊÇÔÚ±¾µØ¸Ä±äÆä״̬¡£

²¢ÇÒͬʱÔÚ²»Í¬µÄǰ¶Ë¿ò¼ÜÉÏ£¬ËûÃÇÔÚÐÐΪÉÏ»¹ÓÐÒ»Ð©Çø±ð¡£ÕâÈ¡¾öÓÚÎÒÃÇÊÇ·ñÐèÒªºǫ́äÖȾ£¬¼´Ë¢Ðµ±Ç°Ò³ÃæÊ±µÄ±íÏÖÐÎʽ¡£
ʹÓà Hash £¨#£©»òÕß Hash Bang £¨#!£© µÄÐÎʽ¡£¼´ # ¿ªÍ·µÄ²ÎÊýÐÎʽ£¬ÖîÈç ued.party/#/blog¡£µ±ÎÒÃÇ·ÃÎÊ
blog/12 ʱ£¬URL µÄ¾Í»á±ä³É ued.party/#/blog/12
ʹÓÃÐ嵀 HTML 5 µÄ history API¡£Óû§¿´µ½µÄ URL ºÍÕý³£µÄ URL ÊÇÒ»ÑùµÄ¡£µ±Óû§µã»÷ij¸öÁ´½Ó½øÈ뵽еÄÒ³ÃæÊ±£¬»áͨ¹ý
history µÄ pushState À´ÌîÈëеĵØÖ·¡£µ±ÎÒÃÇ·ÃÎÊ blog/12 ʱ£¬URL µÄ¾Í»á±ä³É
ued.party/blog/12¡£µ±Óû§Ë¢ÐÂÒ³ÃæµÄʱºò£¬Çëͨ¹ýÐ嵀 URL À´Ïò·þÎñÆ÷ÇëÇóÄÚÈÝ¡£
ÐÒÔ˵ÄÊÇ£¬´ó²¿·ÖµÄ×îРRouter ×é¼þ¶¼»áÅжÏÊÇ·ñÖ§³Ö history API£¬ÔÙÀ´¾ö¶¨ÏÈÓÃÄÄÒ»¸ö·½°¸¡£
Êý¾Ý£º»ñÈ¡Óë¼øÈ¨
ʵÏÖ·ÓɵÄʱºò£¬Ö»Êǽ«¶ÔÓ¦µÄ¿ØÖÆÈ¨½»¸ø¿ØÖÆÆ÷£¨»ò³Æ×é¼þ£©À´´¦Àí¡£¶ø×÷Ϊһ¸öµ¥Ò³ÃæÓ¦ÓõĿØÖÆÆ÷£¬µ±Ö´Ðе½ÏàÓ¦µÄ¿ØÖÆÆ÷µÄʱºò£¬¾Í¿ÉÒÔ¸ù¾Ý¶ÔÓ¦µÄ
blog/12 À´»ñÈ¡µ½Óû§ÏëÒªµÄ ID ÊÇ 12¡£Õâ¸öʱºò£¬¿ØÖÆÆ÷½«ÐèÒªÔÚÒ³ÃæÉÏÉèÖÃÒ»¸ö loading
µÄ״̬£¬È»ºó·¢ËÍÒ»¸öÇëÇ󵽺ǫ́·þÎñÆ÷¡£

¶ÔÓÚÊý¾Ý»ñÈ¡À´Ëµ£¬ÎÒÃÇ¿ÉÒÔͨ¹ý·â×°¹ý XMLHttpRequest µÄ Ajax À´»ñÈ¡Êý¾Ý£¬Ò²¿ÉÒÔͨ¹ýеġ¢Ö§³Ö
Promise µÄ Fetch API À´»ñÈ¡Êý¾Ý£¬µÈµÈ¡£Fetch API Óë¾¹ý Promise ·â×°µÄ
Ajax ²¢Ã»ÓÐÌ«´óµÄÇø±ð£¬ÎÒÃÇÈÔÈ»ÊÇдÀàËÆÓÚµÄÐÎʽ£º
fetch(url).then(response => response.json()) .then(data => console.log(data)) .catch(e => console.log("Oops, error", e)) |
¶ÔÓÚ¸´ÔÓÒ»µãµÄÊý¾Ý½»»¥À´Ëµ£¬ÎÒÃÇ¿ÉÒÔͨ¹ý RxJS À´½â¾öÀàËÆµÄÎÊÌâ¡£Õû¸ö¹ý³ÌÖУ¬±È½Ï¸´Ôӵĵط½ÊǶÔÊý¾ÝµÄ¼øÈ¨ÓëÄ£ÐÍ£¨Model£©µÄ´¦Àí¡£
Ä£ÐÍÂé·³µÄµØ·½ÔÚÓÚ£º×ª±ä³ÉÏëÒªµÄÐÎʽ¡£ºǫ́·µ»ØµÄÖµÊǿɱäµÄ£¬ËüÓпÉÄܲ»·µ»Ø£¬ÓпÉÄÜÊÇ null£¬ÓÖ»òÕßÊÇÓëÎÒÃÇÒªÏÔʾµÄÖµ²»Ò»Ñù¡ª¡ªÏëҪչʾµÄÊÇ
54%£¬¶øºǫ́·µ»ØµÄÊÇ 0.54¡£Óë´Ëͬʱ£¬ÎÒÃÇ¿ÉÄÜ»¹ÐèÒª¶ÔÊýÖµ½øÐмòµ¥µÄ¼ÆË㣬ÏÔʾһ¸ö·¶Î§¡¢Çø¼ä£¬ÓÖ»òÕßÊDz»Í¬µÄÁ½ÖÖչʾ¡£
ͬʱÔÚ±ØÒªµÄʱºò£¬ÎÒÃÇ»¹ÐèÒª½«ÕâЩֵ´æ´¢ÔÚ±¾µØ£¬»òÕßÄÚ´æÀï¡£µ±ÎÒÃÇÖØÐ½øÈëÕâ¸öÒ³ÃæµÄʱºò£¬ÎÒÃÇÔÙÈ¥¶ÁÈ¡ÕâЩֵ¡£

Ò»µ©Ì¸ÂÛµ½Êý¾ÝµÄʱºò£¬²»¿É±ÜÃâµÄÎÒÃǾÍÐèÒª¹ØÐݲȫÒòËØ¡£¶ÔÓÚÆÕͨµÄ Web Ó¦ÓÃÀ´Ëµ£¬ÎÒÃÇ¿ÉÒÔ×öÁ½¼þÊÂÀ´±£Ö¤Êý¾ÝµÄ°²È«£º
²ÉÓà HTTPS£ºÔÚ´«ÊäµÄ¹ý³ÌÖб£Ö¤Êý¾ÝÊǼÓÃܵġ£
¼øÈ¨£ºÈ·±£Ö¸¶¨µÄÓû§Ö»ÄÜ¿ÉÒÔ·ÃÎÊÖ¸¶¨µÄÊý¾Ý¡£
Ŀǰ£¬Á÷ÐеÄǰ¶Ë¼øÈ¨·½Ê½ÊÇ Token µÄÐÎʽ£¬¿ÉÒÔÊÇÆÕͨµÄ¶¨ÖÆ Token£¬Ò²¿ÉÒÔÊÇ JSON Web
Token¡£»ñÈ¡ Token µÄÐÎʽ£¬ÔòÊÇͨ¹ý Basic ÈÏÖ¤¡ª¡ª½«Óû§ÊäÈëµÄÓû§ÃûºÍÃÜÂ룬¾¹ý BASE64
¼ÓÃÜ·¢Ë͸ø·þÎñÆ÷¡£·þÎñÆ÷½âÃܺóÑéÖ¤ÊÇ·ñÊÇÕý³£µÄÓû§ÃûºÍÃÜÂ룬ÔÙ·µ»ØÒ»¸ö´øÓÐʱÆÚÆÚÏÞµÄ Token ¸øÇ°¶Ë¡£
Ëæºó£¬µ±Óû§È¥»ñÈ¡ÐèҪȨÏÞµÄÊý¾Ýʱ£¬ÐèÒªÔÚ Header Àï¼ø¶¨Õâ¸ö Token ÊÇ·ñÓÐÏÞ£¬ÔÙ·µ»ØÏàÓ¦µÄÊý¾Ý¡£Èç¹û
Token ÒѾ¹ýÆÚÁË£¬Ôò·µ»Ø 401 »òÕßÀàËÆµÄ±êÖ¾£¬¿Í»§¶Ë¾ÍÔÚÕâ¸öʱºòÇå³ý Token£¬²¢ÈÃÓû§ÖØÐµÇ¼¡£
Êý¾Ýչʾ£ºÄ£°åÒýÇæ
ÏÖÔÚ£¬ÎÒÃÇÒѾ»ñÈ¡µ½ÕâЩÊý¾ÝÁË£¬ÏÂÒ»²½ËùÐèÒª×öµÄ¾ÍÊÇÏÔʾÕâЩÊý¾Ý¡£

ÓëÆäËûÄÚÈÝÏà±È£¬ÏÔʾÊý¾Ý¾ÍÊÇÒ»¼þ¼òµ¥µÄÊ£¬Î޷ǾÍÊÇ£º
ÒÀ¾ÝÌõ¼þÀ´ÏÔʾ¡¢Òþ²ØÄ³Ð©Êý¾Ý
ÔÚÄ£°åÖжÔÊý¾Ý½øÐбéÀúÏÔʾ
ÔÚÄ£°åÖÐÖ´Ðз½·¨À´»ñÈ¡ÏàÓ¦µÄÖµ£¬¿ÉÒÔÊǺ¯Êý£¬Ò²¿ÉÒÔÊǹýÂËÆ÷¡£
ÒÀ¾Ý²»Í¬µÄÊýÖµÀ´¶¯Ì¬»ñÈ¡Ñùʽ
µÈµÈ
²»Í¬µÄ¿ò¼Ü»á´æÔÚһЩ²îÒì¡£²¢ÇÒÏÖ´úµÄǰ¶Ë¿ò¼Ü¶¼¿ÉÒÔÖ§³Öµ¥Ïò»òÕßË«ÏòµÄÊý¾Ý°ó¶¨¡£µ±ÏàÓ¦µÄÊý¾Ý·¢Éú±ä»¯Ê±£¬Ëü¾Í¿ÉÒÔ×Ô¶¯µØÏÔʾÔÚ
UI ÉÏ¡£
×îºó£¬ÔÚÏàÓ¦ÐèÒª´¦ÀíµÄ UI ÉÏ£¬°óÉÏÏàÓ¦µÄʼþÀ´´¦Àí¡£
Ö»ÊÇÔÚÊý¾ÝÏÔʾµÄʱºò£¬ÓÖ»áÉæ¼°µ½ÁíÍâÒ»¸öÎÊÌ⣬¼´×é¼þ»¯¡£¶ÔÓÚһЩÐèÒªÖØÓõÄÔªËØ£¬ÎÒÃǻὫÆä³éȡΪһ¸öͨÓõÄ×é¼þ£¬ÒÔ±ãÓÚÎÒÃÇ¿ÉÒÔ¸´ÓÃËüÃÇ¡£
<my-sizer [(size)]="fontSizePx"></my-sizer>
²¢ÇÒÔÚÕâЩ×é¼þÀҲ»áÉæ¼°µ½ÏàÓ¦µÄ²ÎÊý±ä»¯¼´×´Ì¬¸Ä±ä¡£
½»»¥£ºÊ¼þÓë״̬¹ÜÀí
Íê³ÉÒ»²½²½µÄäÖȾ֮ºó£¬ÎÒÃÇ»¹ÐèÒª×öµÄÊÂÇéÊÇ£º½»»¥¡£½»»¥·ÖΪÁ½²¿·Ö£ºÓû§½»»¥¡¢×é¼þ¼äµÄ½»»¥¡ª¡ª¹²Ïí״̬¡£
×é¼þ½»»¥£º×´Ì¬¹ÜÀí
Óû§´Ó A Ò³ÃæÌø×ªµ½ B Ò³ÃæµÄʱºò£¬ÎªÁ˽âñî×é¼þ¼äµÄ¹ØÏµ£¬ÎÒÃDz»»áʹÓÃ×é¼þµÄ²ÎÊýÀ´´«ÈëÖµ¡£¶øÊǽ«ÕâЩֵ´æ´¢ÔÚÄÚ´æÀÔÚÊʵ±µÄʱºòµ÷³öÕâЩֵ¡£

µ±ÎÒÃÇ´¦ÀíÓû§ÊÇ·ñµÇ¼µÄʱºò£¬ÎÒÃÇÐèÒªÒ»¸ö isLogined µÄ·½·¨À´»ñÈ¡Óû§µÄ״̬£»ÔÚÓû§µÇ¼µÄʱºò£¬ÎÒÃÇ»¹ÐèÒªÒ»¸ö
setLogin µÄ·½·¨£»Óû§µÇ³öµÄʱºò£¬ÎÒÃÇ»¹ÐèÒª¸üÐÂÒ»ÏÂÓû§µÄµÇ¼״̬¡£
ÔÚûÓÐ Redux ֮ǰ£¬ÎÒ¶¼»áдһ¸ö service À´¹ÜÀíÓ¦ÓõÄ״̬¡£ÔÚÕâ¸öÄ£¿éÀïдÉÏЩ setter¡¢getter
·½·¨À´´æ´¢×´Ì¬µÄÖµ£¬²¢¸ù¾ÝÒµÎñ¹¦ÄÜдÉÏһЩÀ´²Ù×÷Õâ¸öÖµ¡£È»¶ø£¬Ê¹Óà service ʱ£¬ÎÒÃǺÜÄѸú×Ùµ½×´Ì¬µÄ±ä»¯Çé¿ö£¬»¹ÐèÒª×öһЩ¶îÍâµÄ´úÂëÀ´Ìرð´¦Àí¡£
ÓÐʱºòÒ²»á·¸ÀÁһϣ¬Ö±½Óдһ¸öÈ«¾Ö±äÁ¿¡£Õâ¸öʱºòά»¤Æð´úÂëÀ´¾ÍÊÇÒ»³¡Ø¬ÃΣ¬ÐèҪȫ¾ÖËÑË÷ÏàÓ¦µÄ±äÁ¿¡£Èç¹ûÊǵ÷ÓÃij¸öÌØ¶¨µÄ
Service ¾Í±È½ÏÈÝÒ×ÕÒµ½µ÷Óõĵط½¡£
Óû§½»»¥£ºÊ¼þ
ÊÂʵÉÏ£¬¶ÔÓÚÓû§½»»¥À´ËµÒ²Ö»ÊǸıä״̬µÄÖµ£¬¼´¶Ô״̬½øÐвÙ×÷¡£

¾ÙÒ»¸öÀý×Ó£¬µ±Óû§µã»÷µÇ¼µÄʱºò£¬·¢ËÍÊý¾Ýµ½ºǫ́£¬Óɺǫ́·µ»ØÕâ¸öÖµ¡£ÓÉ¿ØÖÆÆ÷Ò»Ò»µÄÈ¥ÐÞ¸ÄÕâЩ״̬£¬×îºóÈ·ÈÏÕâ¸öÓû§µÇ¼£¬²¢·¢Ò»¸öÓû§ÒѾµÇ¼µÄ¹ã²¥£¬ÓÖ»òÕßÐÞ¸ÄÈ«¾ÖµÄÓû§Öµ¡£
|