±à¼ÍƼö: |
±¾ÎÄÀ´×Ôbaijiahao£¬±¾ÎĽéÉÜÁË΢ǰ¶ËÊÇʲô£¬ÎªÊ²Ã´ÐèҪ΢ǰ¶Ë£¬ÈçºÎÉè¼ÆÎ¢Ç°¶Ë¼Ü¹¹£¿ÒÔ¼°Ç°¶Ë΢·þÎñ»¯µÈÏà¹ØÄÚÈÝ¡£ |
|
Ö»Ìý¹ý¡°Î¢·þÎñ¡±£¬¡°Î¢Ç°¶Ë¡±ÓÖÊÇʲôӲºË¼¼Êõ£¿
ËüÕýÊÇ½è¼øÎ¢·þÎñµÄ¸ÅÄîÀ´Ó¦ÓÃÔÚǰ¶ËÉÏ£¬½«Ò»¸ö¾Þ´óµÄǰ¶Ë¹¤³Ì²ð·Ö³ÉÒ»¸öµÄС¹¤³Ì£¬ÕâЩС¹¤³Ì¾ß±¸¶ÀÁ¢µÄ¿ª·¢ºÍÔËÐÐÄÜÁ¦£¬¶øÕû¸öϵͳ¾ÍÓÉÕâЩС¹¤³ÌÐͬºÏ×÷¡£
Õâ¸öÀíÄîºÜºÃ£¬¿ÉÔÚʵ¼Ê¿ª·¢ÖУ¬ÓÖ¸ÃÈçºÎÂ䵨£¿ÈçºÎ²ð·ÖÄØ£¿Éæ¼°ºÎÖÖ¼¼Êõ£¿ÔÚ±¾ÎÄÖУ¬×÷Õß½«´ÓdzÈëÉÖð²½Îª´ó¼Ò½²½â¡£
Ëæ×Å Martin Fowler ²©¿ÍÉÏ£¬ÄÇÆª Cam Jackson дµÄ΢ǰ¶ËµÄÎÄÕ·¢²¼£¬µ½´¦¶¼ÔÚÌÖÂÛ
Microfrontend¡£×÷Ϊһ¸ö΢ǰ¶Ë ¡°×¨¼Ò¡±£¬ÎÒÒ²·ÖÏíһϣºÈçºÎÈ¥ÂäµØÎ¢Ç°¶Ë¡£
΢ǰ¶ËÊÇÒ»ÖÖÀàËÆÓÚ΢·þÎñµÄ¼Ü¹¹£¬Ëü½«Î¢·þÎñµÄÀíÄîÓ¦ÓÃÓÚä¯ÀÀÆ÷¶Ë£¬¼´½«µ¥Ò³ÃæÇ°¶ËÓ¦ÓÃÓɵ¥Ò»µÄµ¥ÌåÓ¦ÓÃת±äΪ¶à¸öСÐÍǰ¶ËÓ¦ÓþۺÏΪһµÄÓ¦Ó᣸÷¸öǰ¶ËÓ¦Óû¹¿ÉÒÔ¶ÀÁ¢¿ª·¢¡¢¶ÀÁ¢²¿Êð¡£Í¬Ê±£¬ËüÃÇÒ²¿ÉÒÔÔÚ¹²Ïí×é¼þµÄͬʱ½øÐв¢Ðпª·¢¡ª¡ªÕâЩ×é¼þ¿ÉÒÔͨ¹ý
NPM »òÕß Git Tag¡¢Git Submodule À´¹ÜÀí¡£
ΪʲôÐèҪ΢ǰ¶Ë£¿
΢ǰ¶Ë²»ÊÇÒøµ¯£¬ËüºÍ΢·þÎñÒ»Ñù»á´øÀ´´óÁ¿µÄÌôÕ½¡£
ÒÅÁôÏµÍ³Ç¨ÒÆ¡£½â¾öÒÅÁôϵͳ£¬²ÅÊÇÈËÃDzÉÓÃ΢ǰ¶Ë·½°¸×îÖØÒªµÄÔÒò¡£
¾ÛºÏǰ¶ËÓ¦Óá£Î¢·þÎñ¼Ü¹¹£¬¿ÉÒÔ½âñîºó¶Ë·þÎñ¼äÒÀÀµ¡£¶øÎ¢Ç°¶Ë£¬Ôò¹Ø×¢ÓÚ¾ÛºÏǰ¶ËÓ¦Óá£
ÈÈÄÖÇý¶¯¿ª·¢¡£Ðµļ¼Êõ£¬¼ÈÈ»ºÜÈÈÄÖ£¬ÄÇô¾Íѧ°É¡£
΢ǰ¶ËµÄʵÏÖ£¬Òâζ×ŶÔǰ¶ËÓ¦ÓõIJð·Ö¡£²ð·ÖÓ¦ÓõÄÄ¿µÄ£¬²¢²»Ö»ÊÇΪÁ˼ܹ¹ÉϺÿ´£¬»¹ÎªÁËÌáÉý¿ª·¢Ð§ÂÊ¡£

Ϊ´Ë£¬Î¢Ç°¶Ë´øÀ´ÕâôһϵÁеĺô¦£º
Ó¦ÓÃ×ÔÖΡ£Ö»ÐèÒª×ñÑͳһµÄ½Ó¿Ú¹æ·¶»òÕß¿ò¼Ü£¬ÒÔ±ãÓÚϵͳ¼¯³Éµ½Ò»Æð£¬Ï໥֮¼äÊDz»´æÔÚÒÀÀµ¹ØÏµµÄ¡£
µ¥Ò»Ö°Ôð¡£Ã¿¸öǰ¶ËÓ¦ÓÿÉÒÔÖ»¹Ø×¢ÓÚ×Ô¼ºËùÐèÒªÍê³ÉµÄ¹¦ÄÜ¡£
¼¼ÊõÕ»Î޹ء£Äã¿ÉÒÔʹÓà Angular µÄͬʱ£¬ÓÖ¿ÉÒÔʹÓà React ºÍ Vue¡£
³ý´Ë£¬ËüÒ²ÓÐһϵÁеÄȱµã£º
Ó¦ÓõIJð·Ö»ù´¡ÒÀÀµÓÚ»ù´¡ÉèÊ©µÄ¹¹½¨£¬Ò»µ©´óÁ¿Ó¦ÓÃÒÀÀµÓÚͬһ»ù´¡ÉèÊ©£¬ÄÇôά»¤±ä³ÉÁËÒ»¸öÌôÕ½¡£
²ð·ÖµÄÁ£¶ÈԽС£¬±ãÒâζ׿ܹ¹±äµÃ¸´ÔÓ¡¢Î¬»¤³É±¾±ä¸ß¡£
¼¼ÊõÕ»Ò»µ©¶àÑù»¯£¬±ãÒâζ׿¼ÊõÕ»»ìÂÒ¡£
±Ï¾¹Ã»ÓÐÒøµ¯¡£
ÈçºÎÉè¼ÆÎ¢Ç°¶Ë¼Ü¹¹£¿
¾Íµ±Ç°¶øÑÔ£¬ÒªÉè¼Æ³öÒ»¸ö΢ǰ¶ËÓ¦Óò»ÊÇÒ»¼þÈÝÒ×µÄÊ¡ª¡ª»¹Ã»ÓÐ×î¼Ñʵ¼ù¡£ÔÚ²»Í¬µÄÂ䵨°¸ÀýÀʹÓõͼÊDz»Í¬µÄ·½°¸¡£³öÏÖÕâÖÖÇé¿öµÄÖ÷ÒªÔÒòÊÇ£¬Ã¿¸öÏîÄ¿ËùÃæÁÙµÄÇé¿ö¡¢ËùʹÓõļ¼Êõ¶¼²»¾¡Ïàͬ¡£Îª´Ë£¬ÎÒÃÇÐèÒªÁ˽âһЩ»ù´¡µÄ΢ǰ¶Ëģʽ¡£
¼Ü¹¹Ä£Ê½
΢ǰ¶ËÓ¦ÓüäµÄ¹ØÏµÀ´¿´£¬·ÖΪÁ½ÖÖ£º»ù×ùģʽ£¨¹ÜÀíʽ£©¡¢×Ô×é֯ʽ¡£·Ö±ðÒ²¶ÔÓ¦ÁËÁ½Õß²»Í¬µÄ¼Ü¹¹Ä£Ê½£º
»ù×ùģʽ¡£Í¨¹ýÒ»¸öÖ÷Ó¦Óã¬À´¹ÜÀíÆäËüÓ¦Óá£Éè¼ÆÄѶÈС£¬·½±ãʵ¼ù£¬µ«ÊÇͨÓöȵ͡£
×Ô×é֯ģʽ¡£Ó¦ÓÃÖ®¼äÊÇÆ½µÈµÄ£¬²»´æÔÚÏ໥¹ÜÀíµÄģʽ¡£Éè¼ÆÄѶȴ󣬲»·½±ãʵʩ£¬µ«ÊÇͨÓöȸߡ£
¾Íµ±Ç°¶øÑÔ£¬»ù×ùģʽʵʩÆðÀ´±È½Ï·½±ã£¬·½°¸ÉϱãÒ²ÊÇÂù¶àµÄ¡£

¶ø²»ÂÛÖÖ·½Ê½£¬¶¼ÐèÒªÌṩһ¸ö²éÕÒÓ¦ÓõĻúÖÆ£¬ÔÚ΢ǰ¶ËÖгÆÎª·þÎñµÄ×¢²á±íģʽ¡£ºÍ΢·þÎñ¼Ü¹¹ÏàËÆ£¬²»ÂÛÊÇÄÄÖÖ΢ǰ¶Ë·½Ê½£¬Ò²¶¼ÐèÒªÓÐÒ»¸öÓ¦ÓÃ×¢²á±íµÄ·þÎñ£¬Ëü¿ÉÒÔÊÇÒ»¸ö¹Ì¶¨ÖµµÄÅäÖÃÎļþ£¬Èç
JSON Îļþ£¬ÓÖ»òÕßÊÇÒ»¸ö¿É¶¯Ì¬¸üеÄÅäÖã¬ÓÖ»òÕßÊÇÒ»ÖÖ¶¯Ì¬µÄ·þÎñ¡£ËüÖ÷Òª×öÕâôһЩÄÚÈÝ£º
Ó¦Ó÷¢ÏÖ¡£ÈÃÖ÷Ó¦ÓÿÉÒÔѰÕÒµ½ÆäËüÓ¦Óá£
Ó¦ÓÃ×¢²á¡£¼´ÌṩеÄ΢ǰ¶ËÓ¦Óã¬ÏòÓ¦ÓÃ×¢²á±í×¢²áµÄ¹¦ÄÜ¡£
µÚÈý·½Ó¦ÓÃ×¢²á¡£¼´ÈõÚÈý·½Ó¦Ó㬿ÉÒÔ½ÓÈ뵽ϵͳÖС£
·ÃÎÊȨÏÞµÈÏà¹ØÅäÖá£

Ó¦ÓÃÔÚ²¿ÊðµÄʱºò£¬±ã¿ÉÒÔÔÚ×¢²á±í·þÎñÖÐ×¢²á¡£Èç¹ûÊÇ»ùÓÚ×¢²á±íÀ´¹ÜÀíÓ¦Óã¬ÄÇôʹÓûù×ùģʽÀ´¿ª·¢±È½Ï·½±ã¡£
Éè¼ÆÀíÄî
ÔÚ±ÊÕßʵ¼ù΢ǰ¶ËµÄ¹ý³ÌÖУ¬·¢ÏÖÁËÒÔϼ¸µãÊÇÎÒÃÇÔÚÉè¼ÆµÄ¹ý³ÌÖУ¬ÐèÒª¹Ø×¢µÄÄÚÈÝ£º
ÖÐÐÄ»¯£ºÓ¦ÓÃ×¢²á±í¡£Õâ¸öÓ¦ÓÃ×¢²á±íÓµÓÐÿ¸öÓ¦Óü°¶ÔÓ¦µÄÈë¿Ú¡£ÔÚǰ¶ËÁìÓòÀÈë¿ÚµÄÖ±½Ó±íÏÖÐÎʽ¿ÉÒÔÊÇ·ÓÉ£¬ÓÖ»òÕß¶ÔÓ¦µÄÓ¦ÓÃÓ³Éä¡£
±êʶ»¯Ó¦Óá£ÎÒÃÇÐèÒªÒ»¸ö±êʶ·ûÀ´±êʶ²»Í¬µÄÓ¦Óã¬ÒÔ±ãÓÚÔÚ°²×°¡¢Ð¶ÔصÄʱºò£¬ÄÜѰÕÒµ½Ö¸¶¨µÄÓ¦Óá£Ò»¸ö¼òµ¥µÄģʽ£¬¾ÍÊÇͨ¹ý¿µÍþ¶¨ÂÉÀ´ÃüÃûÓ¦Óá£
Ó¦ÓÃÉúÃüÖÜÆÚ¹ÜÀí¡£
¸ßÄÚ¾Û£¬µÍñîºÏ¡£
ÉúÃüÖÜÆÚ
ǰ¶Ë΢¼Ü¹¹Óëºó¶Ë΢¼Ü¹¹µÄ×î´ó²»Í¬Ö®´¦£¬Ò²ÔÚÓÚ´Ë¡ª¡ªÉúÃüÖÜÆÚ¡£Î¢Ç°¶ËÓ¦ÓÃ×÷Ϊһ¸ö¿Í»§¶ËÓ¦Óã¬Ã¿¸öÓ¦Óö¼ÓµÓÐ×Ô¼ºµÄÉúÃüÖÜÆÚ£º
Load£¬¾ö¶¨¼ÓÔØÄĸöÓ¦Ó㬲¢°ó¶¨ÉúÃüÖÜÆÚ
bootstrap£¬»ñÈ¡¾²Ì¬×ÊÔ´
Mount£¬°²×°Ó¦Óã¬Èç´´½¨ DOM ½Úµã
Unload£¬É¾³ýÓ¦ÓõÄÉúÃüÖÜÆÚ
Unmount£¬Ð¶ÔØÓ¦Óã¬Èçɾ³ý DOM ½Úµã¡¢È¡Ïûʼþ°ó¶¨
Õⲿ·ÖµÄÄÚÈÝÊÂʵÉÏ£¬Ò²¾ÍÊÇ΢ǰ¶ËµÄÒ»¸öÄѵãËùÔÚ£¬ÈçºÎÒÔºÏÊʵķ½Ê½À´¼ÓÔØÓ¦Ó᪡ª±Ï¾¹Ã¿¸öǰ¶Ë¿ò¼Ü¶¼¸÷×Ô²»Í¬£¬ÆäËùÐèÒªµÄ¼ÓÔØ·½Ê½Ò²ÊDz»Í¬µÄ¡£µ±ÎÒÃǾö¶¨Ö§³Ö¶à¸ö¿ò¼ÜµÄʱºò£¬±ãÐèÒªÔÚÕâÒ»²¿·Ö½øÈë¸üϸÖµÄÑо¿¡£
ÈçºÎ²ð·Ö£¿
Ëæºó£¬ÎÒÃÇÒªÃæÁÙµÄÒ»¸öÌôÕ½ÊÇ£ºÈçºÎÈ¥²ð·ÖÓ¦Óá£
¼¼Êõ·½Ê½
´Ó¼¼Êõʵ¼ùÉÏ£¬Î¢Ç°¶Ë¼Ü¹¹¿ÉÒÔ²ÉÓÃÒÔϵļ¸ÖÖ·½Ê½½øÐУº
·ÓÉ·Ö·¢Ê½¡£Í¨¹ý HTTP ·þÎñÆ÷µÄ·´Ïò´úÀí¹¦ÄÜ£¬À´½«ÇëÇó·Óɵ½¶ÔÓ¦µÄÓ¦ÓÃÉÏ¡£
ǰ¶Ë΢·þÎñ»¯¡£ÔÚ²»Í¬µÄ¿ò¼ÜÖ®ÉÏÉè¼ÆÍ¨Ñ¶¡¢¼ÓÔØ»úÖÆ£¬ÒÔÔÚÒ»¸öÒ³ÃæÄÚ¼ÓÔØ¶ÔÓ¦µÄÓ¦Óá£
΢ӦÓá£Í¨¹ýÈí¼þ¹¤³ÌµÄ·½Ê½£¬ÔÚ²¿Êð¹¹½¨»·¾³ÖУ¬×éºÏ¶à¸ö¶ÀÁ¢Ó¦ÓóÉÒ»¸öµ¥ÌåÓ¦Óá£
΢¼þ»¯¡£¿ª·¢Ò»¸öÐµĹ¹½¨ÏµÍ³£¬½«²¿·ÖÒµÎñ¹¦Äܹ¹½¨³ÉÒ»¸ö¶ÀÁ¢µÄ chunk ´úÂ룬ʹÓÃʱֻÐèÒªÔ¶³Ì¼ÓÔØ¼´¿É¡£
ǰ¶ËÈÝÆ÷»¯¡£Í¨¹ý½« iFrame ×÷ΪÈÝÆ÷£¬À´ÈÝÄÉÆäËüǰ¶ËÓ¦Óá£
Ó¦ÓÃ×é¼þ»¯¡£½èÖúÓÚ Web Components ¼¼Êõ£¬À´¹¹½¨¿ç¿ò¼ÜµÄǰ¶ËÓ¦Óá£
ʵʩµÄ·½Ê½ËäÈ»¶à£¬µ«ÊǶ¼ÊÇÒÀ¾Ý³¡¾°¶ø²ÉÓõġ£ÓÐЩ³¡¾°Ï£¬¿ÉÄÜûÓкÏÊʵķ½Ê½£»ÓÐЩ³¡¾°Ï£¬Ôò¿ÉÒÔͬʱʹÓöàÖÖ·½°¸¡£
·ÓÉ·Ö·¢Ê½
·ÓÉ·Ö·¢Ê½Î¢Ç°¶Ë£¬¼´Í¨¹ý·Óɽ«²»Í¬µÄÒµÎñ·Ö·¢µ½²»Í¬µÄ¡¢¶ÀÁ¢Ç°¶ËÓ¦ÓÃÉÏ¡£Æäͨ³£¿ÉÒÔͨ¹ý HTTP ·þÎñÆ÷µÄ·´Ïò´úÀíÀ´ÊµÏÖ£¬ÓÖ»òÕßÊÇÓ¦Óÿò¼Ü×Ô´øµÄ·ÓÉÀ´½â¾ö¡£ÈçÏÂͼËùʾ£º

·ÓÉ·Ö·¢Ê½
¾Íµ±Ç°¶øÑÔ£¬Â·ÓÉ·Ö·¢Ê½µÄ¼Ü¹¹Ó¦¸ÃÊDzÉÓÃ×î¶à¡¢×îÈÝÒ×µÄ ¡°Î¢Ç°¶Ë¡± ·½°¸¡£
ǰ¶Ë΢·þÎñ»¯
ǰ¶Ë΢·þÎñ»¯£¬ÊÇ΢·þÎñ¼Ü¹¹ÔÚǰ¶ËµÄʵʩ£¬Ã¿¸öǰ¶ËÓ¦Óö¼ÊÇÍêÈ«¶ÀÁ¢£¨¼¼ÊõÕ»¡¢¿ª·¢¡¢²¿Êð¡¢¹¹½¨¶ÀÁ¢£©¡¢×ÔÖ÷ÔËÐеģ¬×îºóͨ¹ýÄ£¿é»¯µÄ·½Ê½×éºÏ³öÍêÕûµÄǰ¶ËÓ¦Óá£Æä¼Ü¹¹ÈçÏÂͼËùʾ£º

ǰ¶Ë΢·þÎñ»¯
²ÉÓÃÕâÖÖ·½Ê½Òâζ×Å£¬Ò»¸öÒ³ÃæÉÏͬʱ´æÔÚ¶þ¸ö¼°ÒÔÉϵÄǰ¶ËÓ¦ÓÃÔÚÔËÐС£¶øÂ·ÓÉ·Ö·¢Ê½·½°¸£¬ÔòÊÇÒ»¸öÒ³ÃæÖ»ÓÐΨһһ¸öÓ¦Óá£
×éºÏʽ¼¯³É£ºÎ¢Ó¦Óû¯
΢ӦÓû¯£¬¼´ÔÚ¿ª·¢Ê±£¬Ó¦Óö¼ÊÇÒÔµ¥Ò»¡¢Î¢Ð¡Ó¦ÓõÄÐÎʽ´æÔÚ£¬¶øÔÚÔËÐÐʱ£¬Ôòͨ¹ý¹¹½¨ÏµÍ³ºÏ²¢ÕâЩӦÓã¬×éºÏ³ÉÒ»¸öеÄÓ¦Óá£Æä¼Ü¹¹ÈçÏÂͼËùʾ£º

΢ӦÓû¯
΢ӦÓû¯¸ü¶àµÄÊÇÒÔÈí¼þ¹¤³ÌµÄ·½Ê½£¬À´Íê³Éǰ¶ËÓ¦ÓõĿª·¢£¬Òò´ËÓÖ¿ÉÒÔ³ÆÖ®Îª×éºÏʽ¼¯³É¡£¶ÔÓÚÒ»¸ö´óÐ͵Äǰ¶ËÓ¦ÓÃÀ´Ëµ£¬²ÉÓõļܹ¹·½Ê½£¬ÍùÍù»áÊÇͨ¹ýÒµÎñ×÷ΪÖ÷Ŀ¼£¬¶øºóÔÚÒµÎñĿ¼ÖзÅÖÃÏà¹ØµÄ×é¼þ£¬Í¬Ê±ÓµÓÐһЩͨÓõĹ²ÏíÄ£°å¡£
΢¼þ»¯
΢¼þ£¨widget£©£¬Ö¸µÄÊÇÒ»¶Î¿ÉÒÔÖ±½ÓǶÈëÔÚÓ¦ÓÃÉÏÔËÐеĴúÂ룬ËüÓÉ¿ª·¢ÈËÔ±Ô¤ÏȱàÒëºÃ£¬ÔÚ¼ÓÔØÊ±²»ÐèÒªÔÙ×öÈκÎÐ޸ĻòÕß±àÒë¡£¶øÎ¢Ç°¶ËϵÄ΢¼þ»¯ÔòÖ¸µÄÊÇ£¬Ã¿¸öÒµÎñÍŶӱàд×Ô¼ºµÄÒµÎñ´úÂ룬²¢½«±àÒëºÃµÄ´úÂ벿Êð£¨ÉÏ´«»òÕß·ÅÖ㩵½Ö¸¶¨µÄ·þÎñÆ÷ÉÏ£¬ÔÚÔËÐÐʱ£¬ÎÒÃÇÖ»ÐèÒª¼ÓÔØÏàÓ¦µÄÒµÎñÄ£¿é¼´¿É¡£¶ÔÓ¦µÄ£¬ÔÚ¸üдúÂëµÄʱºò£¬ÎÒÃÇÖ»ÐèÒª¸üжÔÓ¦µÄÄ£¿é¼´¿É¡£ÏÂͼ±ãÊÇ΢¼þ»¯µÄ¼Ü¹¹Ê¾Òâͼ£º

΢¼þ»¯
Ôڷǵ¥ÃæÓ¦ÓÃʱ´ú£¬ÒªÊµÏÖ΢¼þ»¯·½°¸£¬ÊÇÒ»¼þÌØ±ðÈÝÒ×µÄÊ¡£´ÓÔ¶³Ì¼ÓÔØÀ´¶ÔÓ¦µÄ JavaScript
´úÂ룬ÔÚä¯ÀÀÆ÷ÉÏÖ´ÐУ¬Éú³É¶ÔÓ¦µÄ×é¼þǶÈëµ½Ò³ÃæµÄÏàÓ¦²¿·Ö¡£¶ÔÓÚÒµÎñ×é¼þÒ²ÊÇÀàËÆµÄ£¬Ìáǰ±àдºÃÎÒÃǵÄÒµÎñ×é¼þ£¬µ±ÐèÒª¶ÔÓ¦µÄ×é¼þʱÔÙÏìÓ¦¡¢Ö´ÐС£
ǰ¶ËÈÝÆ÷»¯
ǰ¶ËÈÝÆ÷£ºiframe
iframe ×÷Ϊһ¸ö·Ç³£ ¡°¹ÅÀÏ¡± µÄ£¬ÈËÈ˶¼¾õµÃÆÕͨµÄ¼¼Êõ£¬È´Ò»Ö±ºÜ¹ÜÓá£ËüÄÜÓÐЧµØ½«ÁíÒ»¸öÍøÒ³/µ¥Ò³ÃæÓ¦ÓÃǶÈëµ½µ±Ç°Ò³ÃæÖУ¬Á½¸öÒ³Ãæ¼äµÄ
CSS ºÍ JavaScript ÊÇÏ໥¸ôÀëµÄ¡ª¡ª³ýÈ¥ iframe ¸¸×ÓͨÐŲ¿·ÖµÄ´úÂ룬ËüÃÇÖ®¼äµÄ´úÂëÊÇÍêÈ«²»Ï໥¸ÉÈŵġ£iframe
±ãÏ൱ÓÚÊÇ´´½¨ÁËÒ»¸öȫеĶÀÁ¢µÄËÞÖ÷»·¾³£¬ÀàËÆÓÚɳÏä¸ôÀ룬ËüÒâζ×Åǰ¶ËÓ¦ÓÃÖ®¼ä¿ÉÒÔÏ໥¶ÀÁ¢ÔËÐС£
½áºÏ Web Components ¹¹½¨
Web Components ÊÇÒ»Ìײ»Í¬µÄ¼¼Êõ£¬ÔÊÐí¿ª·¢Õß´´½¨¿ÉÖØÓõĶ¨ÖÆÔªËØ£¨ËüÃǵŦÄÜ·â×°ÔÚ´úÂëÖ®Í⣩£¬²¢ÇÒÔÚ
Web Ó¦ÓÃÖÐʹÓÃËüÃÇ¡£

WC ÈÝÆ÷»¯
ĿǰÀ§ÈÅ Web Components ¼¼ÊõÍÆ¹ãµÄÖ÷ÒªÒòËØ£¬ÔÚÓÚä¯ÀÀÆ÷µÄÖ§³Ö³Ì¶È¡£ÔÚ Chrome
ºÍ Opera ä¯ÀÀÆ÷ÉÏ£¬¶ÔÓÚ Web Components Ö§³ÖÁ¼ºÃ£¬¶ø¶ÔÓÚ Safari¡¢IE¡¢Firefox
ä¯ÀÀÆ÷µÄÖ§³Ö³Ì¶È£¬²¢Ã»ÓÐÄÇôÀíÏë¡£
ÒµÎñ²ð·Ö
Óë΢·þÎñÀàËÆ£¬Òª»®·Ö²»Í¬µÄǰ¶Ë±ß½ç£¬²»ÊÇÒ»¼þÈÝÒ×µÄÊ¡£¾Íµ±Ç°¶øÑÔ£¬ÒÔϼ¸ÖÖ·½Ê½Êdz£¼ûµÄ»®·Ö΢ǰ¶ËµÄ·½Ê½£º
°´ÕÕÒµÎñ²ð·Ö¡£
°´ÕÕȨÏÞ²ð·Ö¡£
°´ÕÕ±ä¸üµÄƵÂʲð·Ö¡£
°´ÕÕ×éÖ¯½á¹¹²ð·Ö¡£ÀûÓÿµÍþ¶¨ÂÉÀ´½øÒ»²½²ð·Öǰ¶ËÓ¦Óá£
¸úËæºó¶Ë΢·þÎñ»®·Ö¡£Êµ¼ùÖ¤Ã÷£¬ DDD Óëʼþ·ç±©ÊÇÒ»ÖÖÆÄΪÓÐЧµÄºó¶Ë΢ǰ¶Ë²ð·Öģʽ£¬¶ÔÓÚǰ¶ËÀ´Ëµ£¬ËüÒ²ÆÄÓÐÓÐЧ¡ª¡ªÖ±½Ó¸ú×Ùºó¶Ë·þÎñ¡£

ÿ¸öÏîÄ¿¶¼ÓÐ×Ô¼ºÌØÊâµÄ±³¾°£¬ÇзÖ΢ǰ¶ËµÄ·½Ê½±ã²»Ò»Ñù¡£¼´Ê¹ÏîÄ¿µÄÀàÐÍÏàËÆ£¬Ò²´æÔÚһЩϸ΢µÄ²îÒì¡£
΢ǰ¶ËÖ®Íâ
Èç¹û΢ǰ¶Ë¶ÔÓÚÄãÃÇÀ´ËµÀ§¾³ÖØÖØ£¬»¹ÓÐһЩ²»´íµÄ¼Ü¹¹Ä£Ê½¿ÉÒÔ²ÉÓá£
Ó¦ÓÃ΢»¯¼Ü¹¹
Ó¦ÓÃ΢»¯¼Ü¹¹£¬ÊÇÒ»ÖÖ¿ª·¢Ê±ÕûÌ壬¹¹½¨Ê±²ð·Ö£¬ÔËÐÐʱ·ÖÀëµÄǰ¶Ë¼Ü¹¹Ä£Ê½¡£¼´Ó¦ÓÃ΢»¯¼Ü¹¹´ÓÒ»·Ý´úÂëÖУ¬¹¹½¨³öÊÊÓÃÓÚ²»Í¬»·¾³µÄ¶àÌ×Ä¿±ê´úÂ롣ʵÏÖÉÏËüÊÇÒ»ÖÖ£º
¹¹½¨Ê±²ð·Ö¼Ü¹¹¡£
´úÂëɾ³ý¼Ü¹¹¡£ÒÔɾ´úÂëµÄ·½Ê½£¬À´ÐγÉÿ¸öǰ¶ËÓ¦Óá£
΢ǰ¶Ë×¼±¸Ê½¼Ü¹¹¡£¼´£¬ËæÊ±¿ÉÒÔ²ð·ÖΪ¶à¸öǰ¶ËÓ¦Óá£
ÓÉÓÚËüÓë΢ӦÓû¯µÄÏàËÆÐÔ£¬ÎÒÃǽ«ËüÓë΢ӦÓû¯×öÒ»¸ö¶Ô±È¡£ËüÓë΢ӦÓû¯²»Í¬µÄÊÇ£¬Ó¦ÓÃ΢»¯ÊÇÔÚ¹¹½¨Ê±¶ÔÓ¦ÓýøÐвð·Ö£¬¶ø·ÇÔÚ±¾µØÄ£Ê½Ï¶ÔÓ¦Óòð·Ö¡£ÏàËÆµÄÊÇ£¬ËüÒ²ÊÇ»ùÓÚ¹¹½¨ÏµÍ³µÄÓ¦Óòð·Ö·½Ê½¡£

¿É²ð·Öʽ΢ǰ¶Ë
¼´£ºÎ¢Ó¦Óû¯£¬ÊÇÒ»¸öËæÊ±¿ÉºÏ²¢Ê½¼Ü¹¹¡£¶øÓ¦ÓÃ΢»¯£¬ÔòÊÇÒ»¸öËæÊ±¿É²ð·Öʽ¼Ü¹¹¡£
Ëü²»½ö½öÊÇÒ»¸öÊʺÏÓÚǰ¶ËµÄ¼Ü¹¹Ä£Ê½£¬Ò²ÊÇÒ»ÊÊÓÃÓÚºó¶ËµÄ¼Ü¹¹Ä£Ê½¡£
Õû½àǰ¶Ë¼Ü¹¹
Clean Architecture ÊÇÓÉ Robert C. Martin ÔÚ 2012 ÄêÌá³öµÄ¼Ü¹¹Ä£Ê½¡£Ëü¾ßÓÐÕâÃ´Ò»Ð©ÌØµã£º¿ò¼ÜÎÞ¹ØÐÔ¡¢¿É±»²âÊÔ¡¢UI
ÎÞ¹ØÐÔ¡¢Êý¾Ý¿âÎÞ¹ØÐÔ¡¢Íⲿ»ú¹¹£¨agency£©ÎÞ¹ØÐÔ¡£
¶ÔÓÚǰ¶Ë¼Ü¹¹À´Ëµ£¬Clean Architecure ʵ¼ÊÉÏÊÇ£ºClean Architecture
+ MVP + ×é¼þ»¯¡£ÈçÏÂͼËùʾ£º
¿¼Âǵ½Ó¦ÓõĹæÄ££¬ÕâÀïÒÔ Angular + TypeScript ×÷ΪʾÀý£º

Clean Frontend
ÕâÖּܹ¹Ä£Ê½ÌرðÊʺÏÓÚ£º×éÖ¯ÄÚ¼´Ð´Ç°¶ËÓÖͬºó¶ËµÄÍŶӡ£ËüÒ×ÓÚÓ³Éäǰºó¶Ë API£¬ÇÒ¿ÉÒÔʹÓà UseCase
×÷Ϊ·À¸¯²ã¡£
ûÓÐÒøµ¯¡£²»µÃ²»Ìá¼°µÄÊÇ£¬¶ÔÓÚС¹æÄ£µÄÍŶÓÀ´Ëµ£¬Ëü´øÀ´µÄ±×¶Ë¿ÉÄÜ»áÔ¶Ô¶´óÓںô¦¡ª¡ª´øÀ´´óÁ¿ÈßÓàµÄ´úÂë¡£¾¡¹Üͨ¹ý
Angular Schematics ¿ÉÒÔͨ¹ý²ÎÊýÀ´Éú³É´úÂ룬µ«ÊÇÕâÖÖ·Ö²ã¼Ü¹¹µØÓÚ¼òµ¥µÄÓ¦ÓÃÀ´Ëµ£¬»¹ÊǹýÓÚ¸´ÔÓ¡¢ÄÑÒÔÉÏÊÖ¡£¶ÔÓÚ²»Ð´²âÊÔµÄÏîÄ¿À´Ëµ
£¬usecase Ò²²»ÄÜ´øÀ´ËüÃÇËù³ÐŵµÄºÃ´¦¡£
½áÂÛ
΢ǰ¶Ë²»ÊÇÒøµ¯£¬µ±Ç°Ò²Ã»ÓÐ×î¼Ñʵ¼ù£¬µ«ÊÇÕâÊÇÒ»¸ö·Ç³£ºÃµÄѧϰ»ú»á¡£
|