ÕâÆªÎÄÕ½«´Ó AngularJS ReactJS Polymer Õ⼸¸öÁ÷ÐеĿò¼ÜÈëÊÖ£¬·ÖÎöǰ¶Ë¿ò¼ÜÔÚÕ⼸Äê·¢Õ¹ÖеĹؼü¼¼Êõµã£¬×÷Ϊ2015ǰ¶Ë¼¼ÊõÑ¡Ð͵IJο¼¡£
1. ³õÌåÑé
ÄÃTODOÀ´×÷ΪÒý×ÓºÃÁË.

Angular µÄʵÏÖ


ReactµÄʵÏÖ(·Çflux¼Ü¹¹)

PolymerµÄʵÏÖ


ÈýÕß¹²Í¬¶Ô±È

ÔÚAngularÖÐÓÐcontrollerºÍcomponentµÄ¸ÅÄîÊÇ·ÖÀëµÄ£¬¶øreactºÍpolymerÖÐÖ»ÓÐcomponentµÄ¸ÅÄî¡£
ʵ¼ÊÉÏÈýÕßÔÚ×î¼òµ¥µÄʹÓ󡾰ϲîÒì²¢²»´ó£¬AngularºÍpolymerÄ£°åºÍ´úÂë·ÖÀëµÄ·½Ê½¸üÌù½üÓÚ´«Í³µÄǰ¶Ë×ö·¨£¬¶øReactд·¨¸üÏñºó¶ËäÖȾ¡£¹ØÓÚѧϰºÍʹÓóɱ¾µÄ˸ß˵͵ÃÎÊÌâûÓÐʲôºÃÕùÂ۵ģ¬ÔÚMVVMÒѾÁ÷ÐÐÁËÕâô¾ÃµÄÇé¿öÏ£¬ÈýÕßÈëÃÅÃż÷¶¼²î²»¶à£¬µ«ÒªÓúö¼ÐèÒªÉîÈëÆäÖеÄÔËÐлúÖÆ²ÅÐС£
2. ¼¼ÊõÌØµã
ʵ¼ÊÉÏËùνµÄMVVM¿ò¼ÜµÄ¹Ø¼ü¼¼Êõ¾ÍÒ»¸ö£ºÊý¾ÝÓëÊÓͼµÄ°ó¶¨¡£ÔÚAngular/polymer/knockout/vue/avalon
ÖУ¬ÕâÏî¼¼ÊõµÄʵÏÖÓÖ¿ÉÒÔ²ð·Ö³ÉÁ½¸ö¹Ø¼üµã£ºÄ£°å·ÖÎöºÍÊý¾Ý¼à²â¡£
Ä£°å·ÖÎöµÄÖ÷ҪĿµÄÊÇ¶Ô {{title}} ÕâÑùµÄ±ê¼Ç½øÐÐÊÕ¼¯¡£ÊÕ¼¯Íê³ÉÖ®ºóÉú³ÉÒ»¸öÊÓͼ¸üк¯Êý£¬ÔÚº¯ÊýÄÚ²¿±£´æ×ÅÕâ¸ö±ê¼ÇËùÔÚµÄDomƬ¶ÎºÍÏà¹ØµÄÊý¾ÝÃû³Æ£¬º¯Êý±»µ÷ÓÃʱ»áÈ¥ÖØÐÂÈ¡Êý¾ÝÃû³Æ¶ÔÓ¦µÄÊý¾Ý(»òÕßÓÉÍⲿ½«ÏàÓ¦µÄÊý¾Ý×÷Ϊ²ÎÊý´«Èë)£¬È»ºó¸üÐÂdomƬ¶Î¡£ÕâÑù¾ÍʵÏÖÁËÊÓͼµÄ¸üС£Ò»°ã¿ò¼Ü»áÔÚÆô¶¯Ê±¾Í½«Ä£°å·ÖÎöÍ꣬Éú³ÉÏàÓ¦µÄÊÓͼ¸üк¯Êý¡£µ±Êý¾Ý¸üеÄʱºò£¬¾Íµ÷ÓÃÕâЩ¸üк¯ÊýÀ´¸üÐÂÊÓͼ£¬ÄÇôÎÊÌâÀ´ÁË£¬ÈçºÎ¼ì²âÊý¾ÝµÄ¸Ä¶¯?
knockout/angular/avalon´ú±íÁËÈýÖÖ·½°¸:
1¡¢Ê¹ÓÃ×Ô¶¨ÒåµÄÊý¾Ý¶ÔÏó¼°ÆäÖ¸¶¨µÄgetºÍsetº¯Êý¡£ÀýÈçÄãÖ»ÄÜʹÓà user.set("name","john")À´¸øuser¶ÔÏóµÄnameÊôÐÔ¸³Öµ£¬ÒòΪÕâÑùËü²ÅÄÜÔÚsetº¯ÊýÖÐÖªµÀÐÞ¸ÄÁËʲôÊôÐÔ£¬²¢ÇÒÖ»µ÷ÓÃÏàÓ¦µÄÊÓͼ¸üк¯Êý¡£ÕâÖÖ·½Ê½²»Ì«Ë¬µÄµØ·½ÔÚÓڸıäÁËÔÓеÄJS¶ÔÏóʹÓõķ½Ê½¡£
2¡¢Ê¹Óà Object.defineProperty µÄgetºÍsetº¯ÊýÀ´¼ì²â¶ÔÏóÊôÐԵĸ͝£¬±¾ÖÊÉϺÍÉÏÖÖûÓÐÊ²Ã´Çø±ð¡£µ«ÊÇËüÓÐÒ»¸öȱÏÝ£¬¾ÍÊÇÎÞ·¨¼ì²âÐÂÔöµÄ»òɾ³ýµÄÊôÐÔ¡£ÓеĿò¼ÜÊÇͨ¹ýObject.observeÀ´²¹³äÕâÖÖ·½°¸µÄ£¬²»¹ýObject.observe
ĿǰҲֻÓÐchromeÖ§³Ö¡£ÕâÖÖ·½·¨¸ÄÁ¼ÁËÉÏÃæµÄ¿ª·¢ÌåÑ飬Äã¿ÉÒÔÏñʹÓÃÔÉúJS¶ÔÏóÒ»ÑùÀ´²Ù×÷ÄãµÄÊý¾Ý¡£µ«ÊÇÔÚʵÏÖÉϽÏΪ¸´ÔÓ¡£
3¡¢dirty check¡£ÕâÊÇangularÕýÔÚʹÓõĻúÖÆ£¬Ëü²¢²»ÄÜÏñǰÁ½ÖÖÒ»ÑùÒ»µ©Êý¾Ý·¢Éú±ä»¯Á¢¼´´¥·¢¸üлص÷¡£¶øÊDZØÐëÔÚµ÷ÓÃÁËangularÌṩµÄһЩ·½·¨£¬»òÕß´¥·¢ÁËÒ³ÃæÉÏʹÓÃÁËng-clickµÈµÄÔªËØÉϵÄʼþºó²Å»á´¥·¢¡£ÕâЩ´¥·¢Ê±»úÊÇangularÄÚ²¿¾ÍÒѾʵÏÖÁ˵ģ¬ËùÒÔÄ㼸ºõ¸Ð¾õ²»µ½¡£ÕâÖÖ·½·¨±»³ÆÎª"dirty"µÄÔÒòÊÇ£¬Ëü±£´æÁËËùÓÐÊôÐÔÉÏÒ»´ÎµÄÖµ£¬¼ì²âÊÇͨ¹ý±éÀú¶ÔÏóµÄËùÓÐÊôÐÔ£¬¶Ô±ÈËüºÍÉÏÒ»´ÎÖµÊÇ·ñÒ»ÑùÀ´ÊµÏֵġ£Èç¹ûÊÇÉî²ã¶ÔÏóµÄ»°£¬Ëü»á²ã²ã±éÀú¡£ÕâÖÖ¼ì²â·½Ê½½áºÏÁËÉÏÃæÁ½ÖÖµÄÓÅÊÆ,µ«ÊǶÔÐÔÄÜÔì³ÉÁ˸ºµ£¡£
ÖÁ´Ë£¬Á½¸ö¹Ø¼ü¼¼Êõµã¶¼Òѽ²Çå³þ£¬ÓÃÒ»ÕÅͼÀ´»Ø¹ËÒ»ÏÂ

¶øÔÚReactÖÐÔòÏà¶Ô¼òµ¥£¬ReactÓõÄÊÇÀàËÆÓÚÖØ»æµÄ»úÖÆ£¬µ±´¥·¢ÁË setState Ö®ºó£¬¾ÍÍêÈ«ÖØÐÂäÖȾ(²¢·ÇÁ¢¼´´¥·¢£¬ÖмäÓÐÀàËÆÓÚ»º´æµÄÐÔÄÜÌáÉý»úÖÆ)¡£Õâ¿´ÆðÀ´±ÈÆðÇ°ÃæµÄ·½°¸¼òµ¥´Ö±©£¬µ«ÊÇÈ´ÒòΪvirtual
domµÄʵÏÖ»¯¸¯ÐàΪÉñÆæÁË¡£virtual domÖ¸µÄÊÇReactÄÚ²¿ÓÃÀ´Ä£ÄâÕæÊµdomµÄÒ»ÖÖÊý¾Ý¶ÔÏó¡£µ±ÖØÐÂäÖȾʱ£¬Êµ¼ÊÉÏÊÇÏÈÉú³ÉÕâÑùvirtual
dom£¬È»ºó½«ÆäºÍÉÏÒ»´ÎµÄvirtual dom½øÐжԱȣ¬ÕÒ³ö²îÒ죬×îºóÓÉreactÔÚÕæÊµµÄdomÉϸüÐÂÓвîÒìµÄ²¿·Ö¾Í¹»ÁË¡£ÒòΪvirtual
domʼÖÕÔÚÄÚ´æÖУ¬ÕæÊµµÄdom²Ù×÷·Ç³£ÉÙ£¬¶øÇ°ÃæµÄ¼¸ÖÖ¿ò¼ÜÔÚ¸üÐÂÊÓͼʱ³£³£»áÓдóÁ¿µÄdom²Ù×÷£¬Òò´ËreactÔÚÐÔÄÜÉÏ´ó´óÁìÏÈǰһÖÖÀàÐ͵Ŀò¼Ü¡£Í¬Ê±Ò²ÒòΪvirtual
domÈÔÈ»ÊDZê×¼µÄ js¶ÔÏó£¬ËùÒÔʹµÃ"·þÎñ¶ËäÖȾ"Ò²³ÉΪ¿ÉÄÜ¡£
ÖµµÃ×¢ÒâµÄÊÇ£¬ËäÈ»React±¾Éí²¢²»»áÏñÇ°ÃæµÄ¿ò¼ÜÒ»ÑùÉîÈëµÄÈ¥¼ì²âÊý¾ÝµÄÄÄÒ»²¿·Ö·¢ÉúÁ˱仯£¬µ«ÊÇ¿ÉÒÔͨ¹ý¹Ù·½ÌṩµÄaddon
ºÍimmutable.jsÀ´½øÒ»²½Ìá¸ßÕâÒ»¿éµÄÐÔÄÜ¡£
3. ×é¼þ»¯
ÔÚ×é¼þ»¯µÄ·½ÏòÉÏ react ºÍÆäËû¼¸ÖÖ¿ò¼Ü¼¸ºõÒѾ·ÖµÀÑïïðÁË¡£´Ó angular2.0µÄÉè¼ÆºÍгöµÄ
aurelia µÈ¿ò¼ÜÖпÉÒÔ¿´µ½´ó¼Ò¶¼ÔÚ³¢ÊÔÍù webcomponent ¿¿½ü¡£polymerºÅ³ÆÏ¸ö°æ±¾´úÂ뽫´ó·ù¼õÉÙ£¬ÄÇÎÞ·ÇÊÇÒòΪä¯ÀÀÆ÷½«ÊµÏÖ±ê×¼ÁË¡£¿¿½ü
webcomponent µÄºÃ´¦ÔÚÓÚÈκÎÒ»¸ö¿ò¼Ü¶¼½«²»ÔÙ·â±Õ£¬ÒÔ custom element×÷Ϊ½Ó¿Ú²ã£¬ÄÜʵÏÖÉú̬ȦµÄÈںϡ£
ËäÈ» react Ò²Óзâ×°³É custom elementµÄ·½°¸£¬µ«ÊÇ
react ²¢Ã»Óкܺõĵ÷ÓÃÆäËû¿ò¼ÜÉú³ÉµÄ custom element µÄ·½°¸¡£"ÏñʹÓÃÔÉúdomÔªËØÒ»ÑùʹÓÃcustom
element"µÄ×é¼þʹÓ÷½Ê½Òâζ×Å×ðÖØÔÉúµÄdomʹÓ÷½Ê½£¬°üÀ¨domµÄʼþµÈµÈ¡£ÕâºÍreact"²»²Ù×÷ÕæÊµdom"µÄ»ù´¡ÒѾ·½ÏòÏàã£ÁË¡£
reactºÍÆäËû¿ò¼ÜµÄ·ÖÆçÆäʵĿǰ¿´À´²¢ÎÞÓÅÁÓÖ®·Ö£¬ÒòΪwebcomponentĿǰ³ýÁËchromeÒÔÍâÆäËûä¯ÀÀÆ÷Ö§³ÖÈÔÈ»²»È«Ãæ¡£ÁíÍ⿼Âǵ½ÌØÊâ¹úÇéµÄ»°£¬´ó¹«Ë¾µÄ²úÆ·ÈÔÈ»ÒªÃæ¶ÔIE8¡£²»ÐÒµÄÊÇĿǰpolymerµÄpolyfill×îµÍÒ²Ö»µ½IE9¡£¶øReactÄÜÎÞÍ´Ö§³ÖIE8¡£ÔÙ¿¼Âǵ½Òƶ¯¶ËµÄä¯ÀÀÆ÷Çé¿öµÄ»°£¬Ò²ÊÇʹÓÃreactµÄ¼¼Êõ×èÁ¦Ô¶Ð¡ÓÚwebcomponent¡£
×ÜÌåÀ´¿´£¬webcomponent¿Ï¶¨»áÊÇÇ÷ÊÆ£¬²¢ÇÒ½«´Ù½ø¸÷¸ö¿ò¼Ü±äµÃ¸ü¼Ó¿ª·Å£¬¸üÒ×»¥ÏàÈںϡ£¶øreactÒ²ÈÔ½«¼ÌÐøÒÀ¿¿×Ô¼ºÔÚʵÏÖÉϵÄÓÅÊÆ¼ÌÐø×ßÏÂÈ¥¡£Ò²ÐíδÀ´ÔÚÕâÖмäÓÖ½«µ®Éúж«Î÷¡£
ÔÝʱÅ׿ªreactºÍwebcomponent¡£ÎÒÃǼÌÐøÉîÈëÁ½¸öĿǰÌÖÂ۵úÜÉÙµ«ÊÇÈ´ºÜÖØÒªµÄÎÊÌâ(ÏÂÃæÌÖÂÛµÄ×é¼þÎÊÌâ¶¼ÒÔ·â×°³Écustom
elementΪ»ù´¡):
1¡¢ÈçºÎÄܰÑ×é¼þ±äµÃ¸üÒ×ÖØÓÃ? ¾ßÌåÒ»µã:
ÎÒÔÚÓÃij¸ö×é¼þʱÐèÒªÖØÐµ÷ÕûÒ»ÏÂ×é¼þÀïÃæÔªËØµÄ˳ÐòÔõô°ì?
ÎÒÏëҪȥµô×é¼þÀïÃæÄ³Ò»¸öÔªËØÔõô°ì?
2¡¢ÈçºÎ°Ñ×é¼þ±äµÃ¸üÒ×À©Õ¹? ¾ßÌåÒ»µã:
ÒµÎñ·½²»¶ÏÒªÇó¸ø×é¼þ¼Ó¹¦ÄÜÔõô°ì?
Õë¶ÔµÚÒ»¸öÎÊÌ⣬ÎÒËùÔÚµÄÍŶÓĿǰÌá³öÒ»¸ö½Ð×ö"Ä£°å¸´Ð´"µÄ¹æÔò£¬Õâ¸ö¹æÔòÓÖ·ÖΪ"ÍêÈ«ÖØÐ´"ºÍ"²¿·ÖÖØÐ´"Á½ÖÖ¹æÔò:

²¿·ÖÖØÐ´

ÕâÖÖ·½°¸ÒÑÔÚangularÖÐʵÏÖ¡£²¢ÇÒÔÚ×é¼þÖØÓÃÂʸߵÄϵͳÖÐÒѾÑéÖ¤·Ç³£ÊµÓᣵ«ËüÒ²ÓÐȱÏÝ£¬È±ÏÝÔÚÓÚÄã±ØÐëÖªµÀµ±Ç°×é¼þµÄʵÏÖ·½Ê½ºÍÔÓÐÄ£°å²ÅÄܸ´Ð´¡£
µÚ¶þ¸öÎÊÌ⣬¿ÉÒÔÓÃÒ»ÖÖ³ÆÎª"¹²Ïí×÷ÓÃÓò"µÄ·½Ê½À´½â¾ö¡£ÀýÈçÉÏÃæµÄÀý×ÓÖÐstoryûÓÐÏÔʾlikeÊýÁ¿£¬ÏÖÔÚÒªÏÔʾ³öÀ´¡£³£¹æ·½°¸ÓÐÁ½ÖÖ:
1.¸Ä×é¼þ£¬ÔÚ×é¼þÖÐÔö¼ÓÕâ¸ö¹¦ÄÜ¡£
2.¸ø×é¼þÔö¼ÓapiÓÃÓÚ»ñȡͳ¼ÆÊý¾Ý£¬Í¬Ê±ÔÚͳ¼ÆÊý¾Ý·¢Éú±ä»¯Ê±Å׳öʼþ֪ͨÍⲿ¡£
µÚÒ»ÖÖ·½°¸¿ÉÄÜÅöµ½µÄÎÊÌâÊǵ±Ôٴη¢Éú±ä»¯£¬ÀýÈçͳ¼ÆÊý¾Ý²»ÒªÏÔʾÔÚ×é¼þÀïÃæÁË¡£¾ÍµÃ¼ÌÐø¸Ä³ÉµÚ¶þÖÖ·½°¸¡£
µÚ¶þÖÖ·½°¸¿ÉÄÜÅöµ½µÄÎÊÌâÊÇ¿ÉÄܲ»¶ÏÓÐеÄÐèÇóÌá³öÀ´£¬×îºó²»µÃ²»°Ñÿһ¸öÄÚ²¿×´Ì¬¶¼±©Â¶³öÀ´£¬Ã¿Ò»¸ö²Ù×÷¹ý³Ì¶¼Å׳öʼþ¡£
"×÷ÓÃÓò¹²Ïí"¹²ÏíµÄ·½°¸ÊÇ: ͨ¹ýÔÚÒ»¸öÌØÊâ±ê¼Ç "import-to"
½«Ä³Ò»¶ÎÍⲿhtmlÒýÈ뵽ij¸ö×é¼þÖÐÈ¥Ò»Æð²ÎÓë"Ä£°å½âÎö"ºÍ"Êý¾Ý°ó¶¨",µ±Íê³ÉʱÔÙ·Å»ØÔÀ´µÄλÖá£ÕâÑùÕâ¸öÍⲿhtml¾ÍÄÜ»ñÈ¡µ½×é¼þÄÚ²¿ÈκÎ״̬ºÍÊý¾ÝÁË¡£ÕâÖÖ·½°¸¿´ÆðÀ´ÓеãÏñhack£¬µ«ÆäʵֻÊÇ»»ÁËÒ»ÖÖ·½Ê½À´Àí½â×é¼þ:×é¼þ·Ö³ÉÁ½¸ö²¿·Ö£¬Ò»ÊÇÊý¾Ý£¬¶þÊÇÊÓͼ¡£ÊÓͼÀíÂÛÉÏÓ¦¸ÃÖ»Êܵ½ËüµÄÂß¼ÊÇ·ñ×ã¹»ÄÚ¾ÛµÄÔ¼Êø£¬¶ø²»Ó¦¸ÃÊܵ½ËüµÄ×ÓÔªËØÊÇ·ñ·ÅÔÚÒ»ÆðµÄÔ¼Êø¡£µ«ÊÇĿǰÎÒÃǸպÃʹÓÃÁËdom×÷ΪÊÓͼµÄ»ù´¡£¬ËùÒÔÊÓͼÊܵ½html½á¹¹µÄÔ¼Êø£¬Õâ¸öÔ¼ÊøÊDz»ºÏÀíµÄ¡£ÎÒÃÇÀ´ÓÃͼ¶Ô±ÈÒ»ÏÂʹÓÃ"×÷ÓÃÓò¹²Ïí"ǰºóµÄ³¡¾°:

µ±È»£¬ÕâÖÖ·½°¸µÄȱÏÝÈÔÈ»ÊÇÄã±ØÐëÖªµÀ×é¼þµÄ¾ßÌåʵÏÖ¡£µ«Õâ²¢²»ÊÇÒ»¸ö²»¿É¿Ë·þµÄȱÏÝ£¬ÎÒÃÇ¿´ÏÂaureliaµÄÉè¼Æ£¬Ëü½«templateµÈµÈ¹Ø¼ü²¿·Ö¶¼Éè¼Æ³ÉÁ˿ɲå°ÎµÄÐÎʽ£¬ÕâÖֽṹÒâζ×ÅδÀ´ÓпÉÄÜʵÏÖÒ»ÖÖͨÓõÄÄ£°åÓï·¨À´ÊµÏÖÉÏÊöÁ½¸ö¹¦ÄÜ¡£ÕâÑù¾Í²»Ôٺ͵ײãñîºÏ¡£
4. Ó¦Óüܹ¹
Ó¦Óüܹ¹µÄ·¶Î§Ì«¹ã£¬ÎÒÃÇÕâÀïÖ»ÌÖÂÛÄÇЩÒѾºÜºÃµØ×é¼þ»¯Á˵ÄÓ¦Ó㬻òÕßÊÇû×é¼þ»¯µ«ÊÇÓÐÃ÷È·²ã¼¶»®·ÖµÄÓ¦Óá£ÎÒÃÇÒÔReact
¶ÔÓ¦µÄ FLUX ΪÇÐÈëµã¡£

ÎÒÃÇÔÙÀ´½áºÏfacebookµÄ¹Ù·½FLUX´úÂëʾÀýÀ´¿´¿´Ã¿¸ö²¿·Ö:

facebookÔÚ½éÉÜFLUXµÄʱºòµÄÖ÷Òª¹ÛµãÊÇ"MVCÀ©Õ¹ÐÔ²»¹»£¬FLUX¿ÉÀ©Õ¹ÐÔ¸ß"¡£ÔÝÇÒ²»È¥ÌÖÂÛFLUXÓëMVCµÄÇø±ð,
ÎÒÃÇÏÈÀ´ËüÊÇÈçºÎÀ©Õ¹µÄ£¬´ÓÉÏÃæµÄ´úÂëÖпÉÒÔ¿´µ½£¬ACTION²»Ö»ÊÇÒ»¸ö½çÃæÉϵĵã»÷ʼþËù²úÉúµÄ£¬ajaxÇëÇó¡¢ÉõÖÁÒ»¸ö³õʼ»¯¹ý³Ì¶¼¿ÉÒÔ²úÉú¶¯×÷£¬"¶¯×÷"Ö»ÊÇÒ»¸ö³éÏó¡£¶¯×÷½«´«µÝ¸ødispatcher,ÓÐdispatcherÔÚÈ¥´¥·¢store×¢²áµÄ»Øµ÷¡£Äã¿ÉÄÜ»áÏ룬´ÓÕâ¸ödispatcherʵ¼ÊÉÏʲôҲû¸É£¬ÕâºÍÎÒÖ±½Ó¶¨ÒåÒ»¸ö·½·¨£¬´¥·¢Ê¼þ¾ÍÖ±½Óµ÷ÓÃÕâ¸ö·½·¨ÓÐÊ²Ã´Çø±ð?Çø±ðÔÚÓÚ£¬µ±Ó¦ÓÃÔö¼Ó¹¦ÄÜ¡¢½øÐÐÀ©Õ¹Ê±£¬Ó¦ÓÿÉÄÜÓжà¸ö²¿·ÖÒªÐͬ¶Ôͬһ¸öaction½øÐÐÏìÓ¦£¬²¢ÇÒ²»Í¬µÄÐͬ²¿·Ö¿ÉÄÜÔÚÖ´ÐÐ˳ÐòÉÏÓÐÑϸñµÄÏȺóÖ®·Ö¡£
¾Ù¸öÀý×Ó£¬Èç¹ûÎÒÒª¶ÔÉÏÃæµÄTODOÔö¼ÓÒ»¸ö"ͳ¼ÆÇø¿é"£¬Èç¹ûÊÇ´«Í³µÄMVCд·¨£¬Äã¿ÉÄÜÒªÐÂÔöÒ»¸östatisticModel£¬È»ºóÔÚcontrollerÖеÄcreateTODO¡¢deleteTODOÖÐÔö¼Ó´úÂëÀ´²Ù×÷Õâ¸öеÄstatisticModel¡£¶øFLUX²»ÓÃÐÞ¸ÄÒÑÓеÄÈκδúÂ룬ֻÐèҪдеÄstore£¬²¢×¢²áһЩ»Øµ÷µ½createAction¡¢deleteActionÖо͹»ÁË¡£ËùÒÔ¿ÉÒÔ¿´×öÊǽ«MVCÖеÄ
"CÖ÷¶¯²Ù×÷M" ·´×ª³É "MÀ´¾ö¶¨ºÎʱÔËÐÐ"(µ±È»ÕâÖÖÇé¿öÒ²¾ÍûÓÐCÁË),
µ«¸üºÃµÄÊÇÀí½â³ÉÊÇÒ»ÖÖ"ʼþϵͳ"µÄ±äÖÖ¡£Õâ¾ÍÊÇËüºÍMVCµÄÇø±ð¡£ÑϸñÀ´Ëµ FLUX
²¢²»ÄÜËãÊÇfacebook"·¢Ã÷"³öÀ´µÄ£¬ÕâÑùµÄÄ£ÐÍÔںܶàʼþÇý¶¯µÄºó¶Ë¿ò¼ÜÖкܳ£¼û£¬Èçzero¡¢yii£¬Ö»²»¹ýÄõ½Ç°¶ËÀ´×÷ΪӦÓüܹ¹Ê±±È½ÏÐÂÓ±¡£
FLUXÊÇĿǰ¸ß¶ÈÍÆ¼öµÄÓ¦Óüܹ¹·½Ê½£¬Ëü²¢Ã»ÓÐÇ¿ÖÆÊ¹ÓõĿâ»òÕß¿ò¼Ü£¬ËùÒÔ²¢²»¾ÖÏÞÓÚreact£¬ÔÚangular¡¢polymerÖÐͬÑùÄÜ×ÔÓÉʵÏÖ¡£ÌرðÊÇĿǰangular¡¢polymerÖеÄÓ¦Óÿª·¢²¢Ã»ÓÐÒ»ÖÖÓ¦Óüܹ¹µÄ×î¼Ñʵ¼ù¡£angularÖеÄÄ£¿é»¯¼ÈûÓÐÒì²½¼ÓÔØÒ²Ã»ÓÐ×÷ÓÃÓò¸ôÀëµÄ×÷Óã¬Êµ¼ÊʹÓÃʱºÜ¼¦Àß¡£µ«ÊÇangularÖеÄÒÀÀµ×¢Èë¡¢filter¡¢serviceµÄÉè¼Æ·Ç³£È«Ã棬Èç¹ûÔÙÄܼÓÉÏFLUXµÄ¼Ü¹¹µÄ»°£¬ÍþÁ¦²»ÈÝСêï¡£¶ÔpolymerÀ´ËµÇé¿ö¸ü¼òµ¥£¬Ó¦ÎªpolymerĿǰֻ¿¼Âǵ½elementÕâÒ»²ã£¬ËùÒÔÉϲãµÄÓ¦Óüܹ¹¿ÉÒÔ×ÔÓÉʵÏÖ¡£
ÖµµÃ²¹³äµÄÊÇ£¬FLUXÖеÄstore£¬dispatcher¿ÉÒÔ¸üºÃµØ¼ÓǿһÏ¡£store¿ÉÒÔʹÓÃһЩ×Ô¶¯Ö§³ÖRESTµÄ¿âÀ´¼ò»¯¿ª·¢£¬dispatcher¿ÉÒÔʹÓÃÖ§³Ö×Ô¶¨Òå˳ÐòµÈ¸ß¼¶µÄʼþ´úÀíʵÏÖ¡£
5. ×ܽá
2015½«ÊÇǰ¶Ë¿ò¼ÜÏ໥½è¼øÏ໥ÈںϵÄÒ»Äê£¬Ëæ×ÅwebcomponentµÄÂ䵨£¬´ó¼Ò¶¼ÔÚÏñ±ê×¼¿¿½ü¡£Ìáǰ´¢±¸Õâ·½ÃæµÄ¼¼Êõ¿Ï¶¨Ã»ÓÐÎÊÌâ¡£ÔÙÉîÈëµ½¿ò¼ÜµÄ¼¼Êõϸ½ÚÖУ¬ÎÒÃÇ¿´µ½ÔÚ"äÖȾ»úÖÆ"¡¢"Êý¾Ý°ó¶¨"¡¢"×é¼þ»¯"¡¢"Ä£¿é»¯"ÕâЩ¹Ø¼ü¼¼ÊõµãÖи÷¸ö¿ò¼ÜÖж¼Óзdz£¾«²ÊµÄʵÏÖ£¬ÖµµÃÉîÈëѧϰ¡£ReactÒì¾üÍ»Æð£¬Ò²ÍƼö³ÖÐø¹Ø×¢£¬ÌرðÊÇÔÚ"Ó¦Óüܹ¹"ÉÏ£¬FLUXȷʵÔÚÕû¸öÒµ½çÆðµ½ÁËÆô·¢µÄ×÷Óã¬ÏàÐÅ»áÔ½À´Ô½Á÷ÐУ¬²¢ÇÒÓÐÔ½À´Ô½¶àʵÏÖ·½Ê½¡£
|