±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚÈîÒ»·åÈÕÖ¾£¬±¾ÎĽéÉÜÁËMVC£¨Model-View-Controller£©ÊÇ×î³£¼ûµÄÈí¼þ¼Ü¹¹Ö®Ò»£¬Òµ½çÓÐ׏㷺ӦÓá£Ëü±¾ÉíºÜÈÝÒ×Àí½â£¬µ«ÊÇÒª½²Çå³þ£¬ËüÓëÑÜÉúµÄ
MVP ºÍ MVVM ¼Ü¹¹µÄÇø±ð¾Í²»ÈÝÒ×ÁË¡£
|
|
Ò»¡¢MVC
MVCģʽµÄÒâ˼ÊÇ£¬Èí¼þ¿ÉÒÔ·Ö³ÉÈý¸ö²¿·Ö¡£

1.ÊÓͼ£¨View£©£ºÓû§½çÃæ¡£
2.¿ØÖÆÆ÷£¨Controller£©£ºÒµÎñÂß¼
3.Ä£ÐÍ£¨Model£©£ºÊý¾Ý±£´æ
¸÷²¿·ÖÖ®¼äµÄͨÐÅ·½Ê½ÈçÏ¡£

1.View ´«ËÍÖ¸Áîµ½ Controller
2.Controller Íê³ÉÒµÎñÂß¼ºó£¬ÒªÇó Model ¸Ä±ä״̬
3.Model ½«ÐµÄÊý¾Ý·¢Ë͵½ View£¬Óû§µÃµ½·´À¡
ËùÓÐͨÐŶ¼Êǵ¥ÏòµÄ¡£
¶þ¡¢»¥¶¯Ä£Ê½
½ÓÊÜÓû§Ö¸Áîʱ£¬MVC ¿ÉÒÔ·Ö³ÉÁ½ÖÖ·½Ê½¡£Ò»ÖÖÊÇͨ¹ý View ½ÓÊÜÖ¸Á´«µÝ¸ø
Controller¡£

ÁíÒ»ÖÖÊÇÖ±½Óͨ¹ýcontroller½ÓÊÜÖ¸Áî¡£

Èý¡¢ÊµÀý£ºBackbone
ʵ¼ÊÏîÄ¿ÍùÍù²ÉÓøüÁé»îµÄ·½Ê½£¬ÒÔ Backbone.js ΪÀý¡£

1. Óû§¿ÉÒÔÏò View ·¢ËÍÖ¸ÁDOM ʼþ£©£¬ÔÙÓÉ View Ö±½ÓÒªÇó Model ¸Ä±ä״̬¡£
2. Óû§Ò²¿ÉÒÔÖ±½ÓÏò Controller ·¢ËÍÖ¸Á¸Ä±ä URL ´¥·¢ hashChange ʼþ£©£¬ÔÙÓÉ
Controller ·¢Ë͸ø View¡£
3. Controller ·Ç³£±¡£¬Ö»Æðµ½Â·ÓɵÄ×÷Ó㬶ø View ·Ç³£ºñ£¬ÒµÎñÂß¼¶¼²¿ÊðÔÚ View¡£ËùÒÔ£¬Backbone
Ë÷ÐÔÈ¡ÏûÁË Controller£¬Ö»±£ÁôÒ»¸ö Router£¨Â·ÓÉÆ÷£© ¡£
ËÄ¡¢MVP
MVP ģʽ½« Controller ¸ÄÃûΪ Presenter£¬Í¬Ê±¸Ä±äÁËͨÐÅ·½Ïò¡£

1. ¸÷²¿·ÖÖ®¼äµÄͨÐÅ£¬¶¼ÊÇË«ÏòµÄ¡£
2. View Óë Model ²»·¢ÉúÁªÏµ£¬¶¼Í¨¹ý Presenter ´«µÝ¡£
3. View ·Ç³£±¡£¬²»²¿ÊðÈκÎÒµÎñÂß¼£¬³ÆÎª"±»¶¯ÊÓͼ"£¨Passive View£©£¬¼´Ã»ÓÐÈκÎÖ÷¶¯ÐÔ£¬¶ø
Presenter·Ç³£ºñ£¬ËùÓÐÂß¼¶¼²¿ÊðÔÚÄÇÀï¡£
Îå¡¢MVVM
MVVM ģʽ½« Presenter ¸ÄÃûΪ ViewModel£¬»ù±¾ÉÏÓë
MVP ģʽÍêȫһÖ¡£

ΨһµÄÇø±ðÊÇ£¬Ëü²ÉÓÃË«Ïò°ó¶¨£¨data-binding£©£ºViewµÄ±ä¶¯£¬×Ô¶¯·´Ó³ÔÚ ViewModel£¬·´Ö®ÒàÈ»¡£Angular
ºÍ Ember ¶¼²ÉÓÃÕâÖÖģʽ¡£ |