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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
ʵʩǰ¶Ë΢·þÎñ»¯µÄÁùÆßÖÖ·½Ê½
 
×÷Õߣº phodal
  2780  次浏览      32
 2020-8-6 
 
±à¼­ÍƼö:
±¾ÎÄÖØµãHTTP ·þÎñÆ÷µÄ·ÓÉÀ´Öض¨Ïò¶à¸öÓ¦Óᢲ»Í¬µÄ¿ò¼ÜÖ®ÉÏÉè¼ÆÍ¨Ñ¶¡¢¼ÓÔØ»úÖÆ¡¢iFrame¡¢Web Components ¹¹½¨Ó¦Óá¢Web Components ¹¹½¨¡¢¹¹½¨Ò»¸öµ¥ÌåÓ¦ÓõÈÏà¹ØÄÚÈÝ¡£
±¾ÎÄÀ´×ÔÓÚ΢ÐÅ phodal,ÓÉ»ðÁú¹ûÈí¼þAnna±à¼­ÍƼö¡£

΢ǰ¶Ë¼Ü¹¹ÊÇÒ»ÖÖÀàËÆÓÚ΢·þÎñµÄ¼Ü¹¹£¬Ëü½«Î¢·þÎñµÄÀíÄîÓ¦ÓÃÓÚä¯ÀÀÆ÷¶Ë£¬¼´½« Web Ó¦ÓÃÓɵ¥Ò»µÄµ¥ÌåÓ¦ÓÃת±äΪ¶à¸öСÐÍǰ¶ËÓ¦ÓþۺÏΪһµÄÓ¦Óá£

ÓÉ´Ë´øÀ´µÄ±ä»¯ÊÇ£¬ÕâЩǰ¶ËÓ¦ÓÿÉÒÔ¶ÀÁ¢ÔËÐС¢¶ÀÁ¢¿ª·¢¡¢¶ÀÁ¢²¿Êð¡£ÒÔ¼°£¬ËüÃÇÓ¦¸Ã¿ÉÒÔÔÚ¹²Ïí×é¼þµÄͬʱ½øÐв¢Ðпª·¢¡ª¡ªÕâЩ×é¼þ¿ÉÒÔͨ¹ý NPM »òÕß Git Tag¡¢Git Submodule À´¹ÜÀí¡£

×¢Ò⣺ÕâÀïµÄǰ¶ËÓ¦ÓÃÖ¸µÄÊÇǰºó¶Ë·ÖÀëµÄµ¥Ó¦ÓÃÒ³Ãæ£¬ÔÚÕâ»ù´¡²Å̸ÂÛ΢ǰ¶Ë²ÅÓÐÒâÒå¡£

½áºÏÎÒ×î½ü°ëÄêÔÚ΢ǰ¶Ë·½ÃæµÄʵ¼ùºÍÑо¿À´¿´£¬Î¢Ç°¶Ë¼Ü¹¹Ò»°ã¿ÉÒÔÓÉÒÔϼ¸ÖÖ·½Ê½½øÐУº

ʹÓà HTTP ·þÎñÆ÷µÄ·ÓÉÀ´Öض¨Ïò¶à¸öÓ¦ÓÃ

ÔÚ²»Í¬µÄ¿ò¼ÜÖ®ÉÏÉè¼ÆÍ¨Ñ¶¡¢¼ÓÔØ»úÖÆ£¬ÖîÈç Mooa ºÍ Single-SPA

ͨ¹ý×éºÏ¶à¸ö¶ÀÁ¢Ó¦Óá¢×é¼þÀ´¹¹½¨Ò»¸öµ¥ÌåÓ¦ÓÃ

iFrame¡£Ê¹Óà iFrame ¼°×Ô¶¨ÒåÏûÏ¢´«µÝ»úÖÆ

ʹÓô¿ Web Components ¹¹½¨Ó¦ÓÃ

½áºÏ Web Components ¹¹½¨

²»Í¬µÄ·½Ê½ÊÊÓÃÓÚ²»Í¬µÄʹÓó¡¾°£¬µ±È»Ò²¿ÉÒÔ×éºÏÒ»ÆðʹÓá£ÄÇô£¬¾ÍÈÃÎÒÃÇÀ´Ò»Ò»Á˽âһϣ¬ÎªÒÔºóµÄ¼Ü¹¹Ñݽø×öһЩ¼¼ÊõÆÌµæ¡£

»ù´¡ÆÌµæ£ºÓ¦Ó÷ַ¢Â·ÓÉ -> ·ÓÉ·Ö·¢Ó¦ÓÃ

ÔÚÒ»¸öµ¥Ìåǰ¶Ë¡¢µ¥Ìåºó¶ËÓ¦ÓÃÖУ¬ÓÐÒ»¸öµäÐ͵ÄÌØÕ÷£¬¼´Â·ÓÉÊÇÓÉ¿ò¼ÜÀ´·Ö·¢µÄ£¬¿ò¼Ü½«Â·ÓÉÖ¸¶¨µ½¶ÔÓ¦µÄ×é¼þ»òÕßÄÚ²¿·þÎñÖС£Î¢·þÎñÔÚÕâ¸ö¹ý³ÌÖÐ×öµÄÊÂÇéÊÇ£¬½«µ÷ÓÃÓɺ¯Êýµ÷Óñä³ÉÁËÔ¶³Ìµ÷Óã¬ÖîÈçÔ¶³Ì HTTP µ÷Ó᣶øÎ¢Ç°¶ËÄØ£¬Ò²ÊÇÀàËÆµÄ£¬ËüÊǽ«Ó¦ÓÃÄÚµÄ×é¼þµ÷Óñä³ÉÁ˸üϸÁ£¶ÈµÄÓ¦Óüä×é¼þµ÷Ó㬼´Ô­ÏÈÎÒÃÇÖ»Êǽ«Â·ÓÉ·Ö·¢µ½Ó¦ÓõÄ×é¼þÖ´ÐУ¬ÏÖÔÚÔòÐèÒª¸ù¾Ý·ÓÉÀ´ÕÒµ½¶ÔÓ¦µÄÓ¦Óã¬ÔÙÓÉÓ¦Ó÷ַ¢µ½¶ÔÓ¦µÄ×é¼þÉÏ¡£

ºó¶Ë£ºº¯Êýµ÷Óà -> Ô¶³Ìµ÷ÓÃ

ÔÚ´ó¶àÊýµÄ CRUD ÀàÐ굀 Web Ó¦ÓÃÖУ¬Ò²¶¼´æÔÚһЩ¼«ÎªÏàËÆµÄģʽ£¬¼´£ºÊ×Ò³ -> Áбí -> ÏêÇ飺

Ê×Ò³£¬ÓÃÓÚÃæÏòÓû§Õ¹Ê¾Ìض¨µÄÊý¾Ý»òÒ³Ãæ¡£ÕâЩÊý¾Ýͨ³£ÊÇÓÐÏÞ¸öÊýµÄ£¬²¢ÇÒÊǶàÖÖÄ£Ð͵ġ£

ÁÐ±í£¬¼´Êý¾ÝÄ£Ð͵ľۺϣ¬ÆäµäÐÍÌØµãÊÇijһÀàÊý¾ÝµÄ¼¯ºÏ£¬¿ÉÒÔ¿´µ½¾¡¿ÉÄܶàµÄÊý¾Ý¸ÅÒª£¨Èç Google Ö»·µ»Ø 100 Ò³£©£¬µäÐͼû Google¡¢ÌÔ±¦¡¢¾©¶«µÄËÑË÷½á¹ûÒ³¡£

ÏêÇ飬չʾһ¸öÊý¾ÝµÄ¾¡¿ÉÄܶàµÄÄÚÈÝ¡£

ÈçÏÂÊÇÒ»¸ö Spring ¿ò¼Ü£¬ÓÃÓÚ·µ»ØÊ×Ò³µÄʾÀý£º

@RequestMapping(value="/")

public ModelAndView homePage(){

return new ModelAndView("/WEB-INF/jsp/index.jsp");

}

¶ÔÓÚij¸öÏêÇéÒ³ÃæÀ´Ëµ£¬Ëü¿ÉÄÜÊÇÕâÑùµÄ£º

@RequestMapping(value="/detail/{detailId}")

public ModelAndView detail(HttpServletRequest request, ModelMap model){

....

return new ModelAndView("/WEB-INF/jsp/detail.jsp", "detail", detail);

}

ÄÇô£¬ÔÚ΢·þÎñµÄÇé¿öÏ£¬ËüÔò»á±ä³ÉÕâÑù×Ó£º

@RequestMapping("/name")

public String name(){

String name = restTemplate.getForObject("http://account/name", String.class);

return Name" + name;

}

¶øºó¶ËÔÚÕâ¸ö¹ý³ÌÖУ¬¶àÁËÒ»¸ö·þÎñ·¢ÏֵķþÎñ£¬À´¹ÜÀí²»Í¬Î¢·þÎñµÄ¹ØÏµ¡£

ǰ¶Ë£º×é¼þµ÷Óà -> Ó¦Óõ÷ÓÃ

ÔÚÐÎʽÉÏÀ´Ëµ£¬µ¥Ìåǰ¶Ë¿ò¼ÜµÄ·Óɺ͵¥Ìåºó¶ËÓ¦Ó㬲¢Ã»ÓÐÌ«´óµÄÇø±ð£ºÒÀ¾Ý²»Í¬µÄ·ÓÉ£¬À´·µ»Ø²»Í¬Ò³ÃæµÄÄ£°å¡£

const appRoutes: Routes = [

{ path: 'index', component: IndexComponent },

{ path: 'detail/:id', component: DetailComponent },

];

¶øµ±ÎÒÃǽ«Ö®Î¢·þÎñ»¯ºó£¬Ôò¿ÉÄܱä³ÉÓ¦Óà A µÄ·ÓÉ£º

const appRoutes: Routes = [

{ path: 'index', component: IndexComponent },

];

Íâ¼ÓÖ®Ó¦Óà B µÄ·ÓÉ£º

const appRoutes: Routes = [

{ path: 'detail/:id', component: DetailComponent },

];

¶øÎÊÌâµÄ¹Ø¼ü¾ÍÔÚÓÚ£ºÔõô½«Â·ÓÉ·Ö·¢µ½ÕâЩ²»Í¬µÄÓ¦ÓÃÖÐÈ¥¡£Óë´Ëͬʱ£¬»¹Òª¸ºÔð¹ÜÀí²»Í¬µÄǰ¶ËÓ¦Óá£

·ÓÉ·Ö·¢Ê½Î¢Ç°¶Ë

·ÓÉ·Ö·¢Ê½Î¢Ç°¶Ë£¬¼´Í¨¹ý·Óɽ«²»Í¬µÄÒµÎñ·Ö·¢µ½²»Í¬µÄ¡¢¶ÀÁ¢Ç°¶ËÓ¦ÓÃÉÏ¡£Æäͨ³£¿ÉÒÔͨ¹ý HTTP ·þÎñÆ÷µÄ·´Ïò´úÀíÀ´ÊµÏÖ£¬ÓÖ»òÕßÊÇÓ¦Óÿò¼Ü×Ô´øµÄ·ÓÉÀ´½â¾ö¡£

¾Íµ±Ç°¶øÑÔ£¬Í¨¹ý·ÓÉ·Ö·¢Ê½µÄ΢ǰ¶Ë¼Ü¹¹Ó¦¸ÃÊDzÉÓÃ×î¶à¡¢×îÒײÉÓÃµÄ ¡°Î¢Ç°¶Ë¡± ·½°¸¡£µ«ÊÇÕâÖÖ·½Ê½¿´ÉÏÈ¥¸üÏñÊǶà¸öǰ¶ËÓ¦Óõľۺϣ¬¼´ÎÒÃÇÖ»Êǽ«ÕâЩ²»Í¬µÄǰ¶ËÓ¦ÓÃÆ´´Õµ½Ò»Æð£¬Ê¹ËûÃÇ¿´ÆðÀ´ÏñÊÇÒ»¸öÍêÕûµÄÕûÌå¡£µ«ÊÇËüÃDz¢²»ÊÇ£¬Ã¿´ÎÓû§´Ó A Ó¦Óõ½ B Ó¦ÓõÄʱºò£¬ÍùÍùÐèҪˢÐÂÒ»ÏÂÒ³Ãæ¡£

ÔÚ¼¸ÄêǰµÄÒ»¸öÏîÄ¿ÀÎÒÃǵ±Ê±ÕýÔÚ½øÐÐÒÅÁôÏµÍ³ÖØÐ´¡£ÎÒÃÇÖÆ¶¨ÁËÒ»¸öÇ¨ÒÆ¼Æ»®£º

Ê×ÏÈ£¬Ê¹Óþ²Ì¬ÍøÕ¾Éú³É¶¯Ì¬Éú³ÉÊ×Ò³

Æä´Î£¬Ê¹Óà React ¼Æ»®Õ»Öع¹ÏêÇéÒ³

×îºó£¬Ìæ»»ËÑË÷½á¹ûÒ³

Õû¸öϵͳ²¢²»ÊÇÒ»´ÎÐÔÇ¨ÒÆ¹ýÈ¥£¬¶øÊÇÒ»²½²½ÍùϽøÐС£Òò´ËÔÚÍê³É²»Í¬µÄ²½Öèʱ£¬ÎÒÃǾÍÐèÒªÉÏÏßÕâ¸ö¹¦ÄÜ£¬ÓÚÊǾÍÐèҪʹÓà Nginx À´½øÐзÓÉ·Ö·¢¡£

ÈçÏÂÊÇÒ»¸ö»ùÓÚ·ÓÉ·Ö·¢µÄ Nginx ÅäÖÃʾÀý£º

http {

server {

listen 80;

server_name www.phodal.com;

location /api/ {

proxy_pass http://http://172.31.25.15:8000/api;

}

location /web/admin {

proxy_pass http://172.31.25.29/web/admin;

}

location /web/notifications {

proxy_pass http://172.31.25.27/web/notifications;

}

location / {

proxy_pass /;

}

}

}

ÔÚÕâ¸öʾÀýÀ²»Í¬µÄÒ³ÃæµÄÇëÇó±»·Ö·¢µ½²»Í¬µÄ·þÎñÆ÷ÉÏ¡£

Ëæºó£¬ÎÒÃÇÔÚ±ðµÄÏîÄ¿ÉÏҲʹÓÃÁËÀàËÆµÄ·½Ê½£¬ÆäÖ÷ÒªÔ­ÒòÊÇ£º¿çÍŶӵÄЭ×÷¡£µ±ÍŶӴﵽһ¶¨¹æÄ£µÄʱºò£¬ÎÒÃDz»µÃ²»Ãæ¶ÔÕâ¸öÎÊÌâ¡£³ý´Ë£¬»¹ÓÐ Angluar ÌøÑÂʽÉý¼¶µÄÎÊÌâ¡£ÓÚÊÇ£¬ÔÚÕâÖÖÇé¿öÏ£¬Óû§Ç°Ì¨Ê¹Óà Angular ÖØÐ´£¬ºǫ́¼ÌÐøÊ¹Óà Angular.js µÈ±£³ÖÔÙÓеļ¼ÊõÕ»¡£ÔÚ²»Í¬µÄ³¡¾°Ï£¬¶¼ÓÐһЩÏàËÆµÄ¼¼Êõ¾ö²ß¡£

Òò´ËÔÚÕâÖÖÇé¿öÏ£¬ËüÊÊÓÃÓÚÒÔϳ¡¾°£º

²»Í¬¼¼ÊõÕ»Ö®¼ä²îÒì±È½Ï´ó£¬ÄÑÒÔ¼æÈÝ¡¢Ç¨ÒÆ¡¢¸ÄÔì

ÏîÄ¿²»Ï뻨·Ñ´óÁ¿µÄʱ¼äÔÚÕâ¸öϵͳµÄ¸ÄÔìÉÏ

ÏÖÓеÄϵͳÔÚδÀ´½«»á±»È¡´ú

ϵͳ¹¦ÄÜÒѾ­ºÜÍêÉÆ£¬»ù±¾²»»áÓÐÐÂÐèÇó

¶øÔÚÂú×ãÉÏÃæ³¡¾°µÄÇé¿öÏ£¬Èç¹ûΪÁ˸üºÃµÄÓû§ÌåÑ飬»¹¿ÉÒÔ²ÉÓà iframe µÄ·½Ê½À´½â¾ö¡£

ʹÓà iFrame ´´½¨ÈÝÆ÷

iFrame ×÷Ϊһ¸ö·Ç³£¹ÅÀϵģ¬ÈËÈ˶¼¾õµÃÆÕͨµÄ¼¼Êõ£¬È´Ò»Ö±ºÜ¹ÜÓá£

HTML ÄÚÁª¿ò¼ÜÔªËØ <iframe> ±íʾǶÌ×µÄÕýÔÚä¯ÀÀµÄÉÏÏÂÎÄ£¬ÄÜÓÐЧµØ½«ÁíÒ»¸ö HTML Ò³ÃæÇ¶Èëµ½µ±Ç°Ò³ÃæÖС£

iframe ¿ÉÒÔ´´½¨Ò»¸öȫеĶÀÁ¢µÄËÞÖ÷»·¾³£¬ÕâÒâζ×ÅÎÒÃǵÄǰ¶ËÓ¦ÓÃÖ®¼ä¿ÉÒÔÏ໥¶ÀÁ¢ÔËÐС£²ÉÓà iframe Óм¸¸öÖØÒªµÄǰÌ᣺

ÍøÕ¾²»ÐèÒª SEO Ö§³Ö

ÓµÓÐÏàÓ¦µÄÓ¦ÓùÜÀí»úÖÆ¡£

Èç¹ûÎÒÃÇ×öµÄÊÇÒ»¸öÓ¦ÓÃÆ½Ì¨£¬»áÔÚÎÒÃǵÄϵͳÖм¯³ÉµÚÈý·½ÏµÍ³£¬»òÕß¶à¸ö²»Í¬²¿ÃÅÍŶÓϵÄϵͳ£¬ÏÔÈ»ÕâÊÇÒ»¸ö²»´íµÄ·½°¸¡£Ò»Ð©µäÐ͵ij¡¾°£¬È紫ͳµÄ Desktop Ó¦ÓÃÇ¨ÒÆµ½ Web Ó¦Óãº

Angular Tabs ʾÀý

Èç¹ûÕâÒ»ÀàÓ¦ÓùýÓÚ¸´ÔÓ£¬ÄÇôËü±ØÈ»ÊÇÒª½øÐÐ΢·þÎñ»¯µÄ²ð·Ö¡£Òò´Ë£¬ÔÚ²ÉÓà iframe µÄʱºò£¬ÎÒÃÇÐèÒª×öÕâôÁ½¼þÊ£º

Éè¼Æ¹ÜÀíÓ¦ÓûúÖÆ

Éè¼ÆÓ¦ÓÃͨѶ»úÖÆ

¼ÓÔØ»úÖÆ¡£ÔÚʲôÇé¿öÏ£¬ÎÒÃÇ»áÈ¥¼ÓÔØ¡¢Ð¶ÔØÕâЩӦÓã»ÔÚÕâ¸ö¹ý³ÌÖУ¬²ÉÓÃÔõÑùµÄ¶¯»­¹ý¶É£¬ÈÃÓû§¿´ÆðÀ´¸ü¼Ó×ÔÈ»¡£

ͨѶ»úÖÆ¡£Ö±½ÓÔÚÿ¸öÓ¦ÓÃÖд´½¨ postMessage ʼþ²¢¼àÌý£¬²¢²»ÊÇÒ»¸öÓѺõÄÊÂÇé¡£Æä±¾Éí¶ÔÓÚÓ¦ÓõÄÇÖÈëÐÔ̫ǿ£¬Òò´Ëͨ¹ý iframeEl.contentWindow È¥»ñÈ¡ iFrame ÔªËØµÄ Window ¶ÔÏóÊÇÒ»¸ö¸ü¼ò»¯µÄ×ö·¨¡£Ëæºó£¬¾ÍÐèÒª¶¨ÒåÒ»Ì×ͨѶ¹æ·¶£ºÊ¼þÃû²ÉÓÃʲô¸ñʽ¡¢Ê²Ã´Ê±ºò¿ªÊ¼¼àÌýʼþµÈµÈ¡£

ÓÐÐËȤµÄ¶ÁÕߣ¬¿ÉÒÔ¿´¿´±ÊÕß֮ǰдµÄ΢ǰ¶Ë¿ò¼Ü£ºMooa¡£

²»¹ÜÔõÑù£¬iframe ¶ÔÓÚÎÒÃǽñÄêµÄ KPI ÅÂÊÇ´ø²»À´Ò»Ë¿µÄºÃ´¦£¬ÄÇôÎÒÃǾÍÈ¥Ôì¸öÂÖ×Ó°É¡£

×ÔÖÆ¿ò¼Ü¼æÈÝÓ¦ÓÃ

²»ÂÛÊÇ»ùÓÚ Web Components µÄ Angular£¬»òÕßÊÇ VirtualDOM µÄ React µÈ£¬ÏÖÓеÄǰ¶Ë¿ò¼Ü¶¼Àë²»¿ª»ù±¾µÄ HTML ÔªËØ DOM¡£

ÄÇô£¬ÎÒÃÇÖ»ÐèÒª£º

ÔÚÒ³ÃæºÏÊʵĵط½ÒýÈë»òÕß´´½¨ DOM

Óû§²Ù×÷ʱ£¬¼ÓÔØ¶ÔÓ¦µÄÓ¦Ó㨴¥·¢Ó¦ÓÃµÄÆô¶¯£©£¬²¢ÄÜÐ¶ÔØÓ¦Óá£

µÚÒ»¸öÎÊÌ⣬´´½¨ DOM ÊÇÒ»¸öÈÝÒ×½â¾öµÄÎÊÌâ¡£¶øµÚ¶þ¸öÎÊÌ⣬ÔòÒ»µã¶ù²»ÈÝÒ×£¬ÌرðÊÇÒÆ³ý DOM ºÍÏàÓ¦Ó¦ÓõļàÌý¡£µ±ÎÒÃÇÓµÓÐÒ»¸ö²»Í¬µÄ¼¼Êõջʱ£¬ÎÒÃǾÍÐèÒªÓÐÕë¶ÔÐÔÉè¼Æ³öÒ»Ì×ÕâÑùµÄÂß¼­¡£

¾¡¹Ü Single-SPA ÒѾ­ÓµÓÐÁ˴󲿷ֿò¼Ü£¨Èç React¡¢Angular¡¢Vue µÈ¿ò¼Ü£©µÄÆô¶¯ºÍÐ¶ÔØ´¦Àí£¬µ«ÊÇËüÈÔÈ»²»ÊÇÊʺÏÓÚÉú²úÓÃ;¡£µ±ÎÒ»ùÓÚ Single-SPA Ϊ Angular ¿ò¼ÜÉè¼ÆÒ»¸ö΢ǰ¶Ë¼Ü¹¹µÄÓ¦ÓÃʱ£¬ÎÒ×îºóÑ¡ÔñÖØÐ´Ò»¸ö×Ô¼ºµÄ¿ò¼Ü£¬¼´ Mooa¡£

ËäÈ»£¬ÕâÖÖ·½Ê½µÄÉÏÊÖÄѶÈÏà¶Ô±È½Ï¸ß£¬µ«ÊǺóÆÚ¶©ÖƼ°¿Éά»¤ÐԱȽϷ½±ã¡£ÔÚ²»¿¼ÂÇÿ´Î¼ÓÔØÓ¦ÓôøÀ´µÄÓû§ÌåÑéÎÊÌ⣬ÆäΨһ´æÔڵķçÏÕ¿ÉÄÜÊÇ£ºµÚÈý·½¿â²»¼æÈÝ¡£

µ«ÊÇ£¬²»ÂÛÔõÑù£¬Óë iFrame Ïà±È£¬ÆäÔÚ¼¼ÊõÉϸü¾ßÓпɴµÅ£±ÆÐÔ£¬¸üÓп´µã¡£Í¬ÑùµÄ£¬Óë iframe ÀàËÆ£¬ÎÒÃÇÈÔÈ»Ãæ¶Ô×ÅһϵÁеIJ»´ó²»Ð¡µÄÎÊÌ⣺

ÐèÒªÉè¼ÆÒ»Ì×¹ÜÀíÓ¦ÓõĻúÖÆ

¶ÔÓÚÁ÷Á¿´óµÄ toC Ó¦ÓÃÀ´Ëµ£¬»áÔÚÊ״μÓÔØµÄʱºò£¬»á¶à³ö´óÁ¿µÄÇëÇó

¶øÎÒÃǼ´ÓÖÒª²ð·ÖÓ¦Óã¬ÓÖÏë blabla¡­¡­£¬ÎÒÃÇ»¹ÄÜÔõô×ö£¿

×éºÏʽ¼¯³É£º½«Ó¦ÓÃ΢¼þ»¯

×éºÏʽ¼¯³É£¬¼´Í¨¹ýÈí¼þ¹¤³ÌµÄ·½Ê½ÔÚ¹¹½¨Ç°¡¢¹¹½¨Ê±¡¢¹¹½¨ºóµÈ²½ÖèÖУ¬¶ÔÓ¦ÓýøÐÐÒ»²½µÄ²ð·Ö£¬²¢ÖØÐÂ×éºÏ¡£

´ÓÕâÖÖ¶¨ÒåÉÏÀ´¿´£¬Ëü¿ÉÄÜËã²»Éϲ¢²»ÊÇÒ»ÖÖ΢ǰ¶Ë¡ª¡ªËü¿ÉÒÔÂú×ãÁË΢ǰ¶ËµÄÈý¸öÒªËØ£¬¼´£º¶ÀÁ¢ÔËÐС¢¶ÀÁ¢¿ª·¢¡¢¶ÀÁ¢²¿Êð¡£µ«ÊÇ£¬ÅäºÏÉÏǰ¶Ë¿ò¼ÜµÄ×é¼þ Lazyload ¹¦ÄÜ¡ª¡ª¼´ÔÚÐèÒªµÄʱºò£¬²Å¼ÓÔØ¶ÔÓ¦µÄÒµÎñ×é¼þ»òÓ¦Óã¬Ëü¿´ÉÏÈ¥¾ÍÊÇÒ»¸ö΢ǰ¶ËÓ¦Óá£

Óë´Ëͬʱ£¬ÓÉÓÚËùÓеÄÒÀÀµ¡¢Pollyfill ÒѾ­¾¡¿ÉÄܵØÔÚÊ״μÓÔØÁË£¬CSS ÑùʽҲ²»ÐèÒªÖØ¸´¼ÓÔØ¡£

³£¼ûµÄ·½Ê½ÓУº

¶ÀÁ¢¹¹½¨×é¼þºÍÓ¦Óã¬Éú³É chunk Îļþ£¬¹¹½¨ºóÔÙ¹éÀàÉú³ÉµÄ chunk Îļþ¡££¨ÕâÖÖ·½Ê½¸üÀàËÆÓÚ΢·þÎñ£¬µ«Êdzɱ¾¸ü¸ß£©

¿ª·¢Ê±¶ÀÁ¢¿ª·¢×é¼þ»òÓ¦Ó㬼¯³ÉʱºÏ²¢×é¼þºÍÓ¦Óã¬×îºóÉú³Éµ¥ÌåµÄÓ¦Óá£

ÔÚÔËÐÐʱ£¬¼ÓÔØÓ¦ÓÃµÄ Runtime£¬Ëæºó¼ÓÔØ¶ÔÓ¦µÄÓ¦ÓôúÂëºÍÄ£°å¡£

Ó¦ÓüäµÄ¹ØÏµÈçÏÂͼËùʾ£¨ÆäºöÂÔͼÖÐµÄ ¡°Ç°¶Ë΢·þÎñ»¯¡±£©£º

×éºÏʽ¼¯³É¶Ô±È

ÕâÖÖ·½Ê½¿´ÉÏÈ¥Ï൱µÄÀíÏ룬¼´ÄÜÂú×ã¶à¸öÍŶӲ¢Ðпª·¢£¬ÓÖÄܹ¹½¨³öÊʺϵĽ»¸¶Îï¡£

µ«ÊÇ£¬Ê×ÏÈËüÓÐÒ»¸öÑÏÖØµÄÏÞÖÆ£º±ØÐëʹÓÃͬһ¸ö¿ò¼Ü¡£¶ÔÓÚ¶àÊýÍŶÓÀ´Ëµ£¬Õâ²¢²»ÊÇÎÊÌâ¡£²ÉÓÃ΢·þÎñµÄÍŶÓÀҲ²»»áÒòΪ΢·þÎñÕâÒ»¸öǰ¶Ë£¬À´Ê¹Óò»Í¬µÄÓïÑԺͼ¼ÊõÀ´¿ª·¢¡£µ±È»ÁË£¬Èç¹ûҪʹÓñðµÄ¿ò¼Ü£¬Ò²²»ÊÇÎÊÌ⣬ÎÒÃÇÖ»ÐèÒª½áºÏÉÏÒ»²½ÖеÄ×ÔÖÆ¿ò¼Ü¼æÈÝÓ¦ÓþͿÉÒÔÂú×ãÎÒÃǵÄÐèÇó¡£

Æä´Î£¬²ÉÓÃÕâÖÖ·½Ê½»¹ÓÐÒ»¸öÏÞÖÆ£¬ÄǾÍÊÇ£º¹æ·¶£¡*¹æ·¶£¡*¹æ·¶£¡¡£ÔÚ²ÉÓÃÕâÖÖ·½°¸Ê±£¬ÎÒÃÇÐèÒª£º

ͳһÒÀÀµ¡£Í³Ò»ÕâЩÒÀÀµµÄ°æ±¾£¬ÒýÈëеÄÒÀÀµÊ±¶¼ÐèÒªÒ»Ò»¼ÓÈë¡£

¹æ·¶Ó¦ÓõÄ×é¼þ¼°Â·ÓÉ¡£±ÜÃⲻͬµÄÓ¦ÓÃÖ®¼ä£¬ÒòΪÕâЩ×é¼þÃû³Æ·¢Éú³åÍ»¡£

¹¹½¨¸´ÔÓ¡£ÔÚÓÐЩ·½°¸ÀÎÒÃÇÐèÒªÐ޸Ĺ¹½¨ÏµÍ³£¬ÓÐЩ·½°¸ÀïÔòÐèÒª¸´Ôӵļܹ¹½Å±¾¡£

¹²ÏíͨÓôúÂë¡£ÕâÏÔÈ»ÊÇÒ»¸öÒª¾­³£Ãæ¶ÔµÄÎÊÌâ¡£

ÖÆ¶¨´úÂë¹æ·¶¡£

Òò´Ë£¬ÕâÖÖ·½Ê½¿´ÆðÀ´¸üÏñÊÇÒ»¸öÈí¼þ¹¤³ÌÎÊÌâ¡£

ÏÖÔÚ£¬ÎÒÃÇÒѾ­ÓÐÁËËÄÖÖ·½°¸£¬Ã¿¸ö·½°¸¶¼ÓÐ×Ô¼ºµÄÀû±×¡£ÏÔÈ»£¬½áºÏÆðÀ´»áÊÇÒ»ÖÖ¸üÀíÏëµÄ×ö·¨¡£

¿¼Âǵ½ÏÖÓм°³£Óõļ¼ÊõµÄ¾ÖÏÞÐÔÎÊÌ⣬ÈÃÎÒÃÇÔٴν«Ä¿¹â·ÅµÃ³¤Ô¶Ò»Ð©¡£

´¿ Web Components ¼¼Êõ¹¹½¨

ÔÚѧϰ Web Components ¿ª·¢Î¢Ç°¶Ë¼Ü¹¹µÄ¹ý³ÌÖУ¬ÎÒ³¢ÊÔȥдÁËÎÒ×Ô¼ºµÄ Web Components ¿ò¼Ü£ºoan¡£ÔÚÌí¼ÓÁËһЩ»ù±¾µÄ Web ǰ¶Ë¿ò¼ÜµÄ¹¦ÄÜÖ®ºó£¬ÎÒ·¢ÏÖÕâÏî¼¼ÊõÌØ±ðÊʺÏÓÚ×÷Ϊ΢ǰ¶ËµÄ»ùʯ¡£

Web Components ÊÇÒ»Ìײ»Í¬µÄ¼¼Êõ£¬ÔÊÐíÄú´´½¨¿ÉÖØÓõĶ¨ÖÆÔªËØ£¨ËüÃǵŦÄÜ·â×°ÔÚÄúµÄ´úÂëÖ®Í⣩²¢ÇÒÔÚÄúµÄ Web Ó¦ÓÃÖÐʹÓÃËüÃÇ¡£

ËüÖ÷ÒªÓÉËÄÏî¼¼Êõ×é¼þ£º

Custom elements£¬ÔÊÐí¿ª·¢Õß´´½¨×Ô¶¨ÒåµÄÔªËØ¡£

Shadow DOM£¬¼´Ó°×Ó DOM£¬Í¨³£Êǽ« Shadow DOM ¸½¼Óµ½Ö÷Îĵµ DOM ÖУ¬²¢¿ÉÒÔ¿ØÖÆÆä¹ØÁªµÄ¹¦ÄÜ¡£¶øÕâ¸ö Shadow DOM ÔòÊDz»ÄÜÖ±½ÓÓÃÆäËüÖ÷Îĵµ DOM À´¿ØÖƵġ£

HTML templates£¬¼´ <template> ºÍ <slot> ÔªËØ£¬ÓÃÓÚ±àд²»ÔÚÒ³ÃæÖÐÏÔʾµÄ±ê¼ÇÄ£°å¡£

HTML Imports£¬ÓÃÓÚÒýÈë×Ô¶¨Òå×é¼þ¡£

ÿ¸ö×é¼þÓÉ link ±êÇ©ÒýÈ룺

<link rel="import" href="components/di-li.html">
<link rel="import" href="components/d-header.html">

Ëæºó£¬ÔÚ¸÷×﵀ HTML ÎļþÀ´´½¨ÏàÓ¦µÄ×é¼þÔªËØ£¬±àдÏàÓ¦µÄ×é¼þÂß¼­¡£Ò»¸öµäÐ굀 Web Components Ó¦Óüܹ¹ÈçÏÂͼËùʾ£º

Web Components ¼Ü¹¹

¿ÉÒÔ¿´µ½Õâ±ß·½Ê½ÓëÎÒÃÇÉÏÃæÊ¹Óà iframe µÄ·½Ê½ºÜÏàËÆ£¬×é¼þÓµÓÐ×Ô¼º¶ÀÁ¢µÄ Scripts ºÍ Styles£¬ÒÔ¼°¶ÔÓ¦µÄÓÃÓÚµ¥¶À²¿Êð×é¼þµÄÓòÃû¡£È»¶øËü²¢Ã»ÓÐÏëÏóÖеÄÄÇôÃÀºÃ£¬ÒªÖ±½ÓʹÓô¿ Web Components À´¹¹½¨Ç°¶ËÓ¦ÓõÄÄѶÈÓУº

ÖØÐ´ÏÖÓеÄǰ¶ËÓ¦Óá£Êǵģ¬ÏÖÔÚÎÒÃÇÐèÒªÍê³ÉʹÓà Web Components À´Íê³ÉÕû¸öϵͳµÄ¹¦ÄÜ¡£

ÉÏÏÂÓÎÉú̬ϵͳ²»ÍêÉÆ¡£È±·¦ÏàÓ¦µÄһЩµÚÈý·½¿Ø¼þÖ§³Ö£¬ÕâÒ²ÊÇΪʲô jQuery Ï൱Á÷ÐеÄÔ­Òò¡£

ϵͳ¼Ü¹¹¸´ÔÓ¡£µ±Ó¦Óñ»²ð·ÖΪһ¸öÓÖÒ»¸öµÄ×é¼þʱ£¬×é¼þ¼äµÄͨѶ¾Í³ÉÁËÒ»¸öÌØ±ð´óµÄÂé·³¡£

Web Components ÖÐµÄ ShadowDOM ¸üÏñÊÇÐÂÒ»´úµÄǰ¶Ë DOM ÈÝÆ÷¡£¶øÒź¶µÄÊDz¢²»ÊÇËùÓеÄä¯ÀÀÆ÷£¬¶¼¿ÉÒÔÍêȫ֧³Ö Web Components¡£

½áºÏ Web Components ¹¹½¨

Web Components ÀëÏÖÔÚµÄÎÒÃÇ̫Զ£¬¿ÉÊǽáºÏ Web Components À´¹¹½¨Ç°¶ËÓ¦Óã¬Ôò¸üÊÇÒ»ÖÖÃæÏòδÀ´ÑݽøµÄ¼Ü¹¹¡£»òÕß˵ÔÚδÀ´µÄʱºò£¬ÎÒÃÇ¿ÉÒÔ¿ªÊ¼²ÉÓÃÕâÖÖ·½Ê½À´¹¹½¨ÎÒÃǵÄÓ¦Ó᣺ÃÔÚ£¬ÒѾ­Óпò¼ÜÔÚ´òÔìÕâÖÖ¿ÉÄÜÐÔ¡£

¾Íµ±Ç°¶øÑÔ£¬ÓÐÁ½ÖÖ·½Ê½¿ÉÒÔ½áºÏ Web Components À´¹¹½¨Î¢Ç°¶ËÓ¦Óãº

ʹÓà Web Components ¹¹½¨¶ÀÁ¢ÓÚ¿ò¼ÜµÄ×é¼þ£¬ËæºóÔÚ¶ÔÓ¦µÄ¿ò¼ÜÖÐÒýÈëÕâЩ×é¼þ

ÔÚ Web Components ÖÐÒýÈëÏÖÓеĿò¼Ü£¬ÀàËÆÓÚ iframe µÄÐÎʽ

ǰÕßÊÇÒ»ÖÖ×é¼þʽµÄ·½Ê½£¬»òÕßÔòÏñÊÇÔÚÇ¨ÒÆÎ´À´µÄ ¡°ÒÅÁôϵͳ¡± µ½Î´À´µÄ¼Ü¹¹ÉÏ¡£

ÔÚ Web Components Öм¯³ÉÏÖÓпò¼Ü

ÏÖÓÐµÄ Web ¿ò¼ÜÒѾ­ÓÐһЩ¿ÉÒÔÖ§³Ö Web Components µÄÐÎʽ£¬ÖîÈç Angular Ö§³ÖµÄ createCustomElement£¬¾Í¿ÉÒÔʵÏÖÒ»¸ö Web Components ÐÎʽµÄ×é¼þ£º

platformBrowser()

.bootstrapModuleFactory(MyPopupModuleNgFactory)

.then(({injector}) => {

const MyPopupElement = createCustomElement(MyPopup, {injector});

customElements.define(¡®my-popup¡¯, MyPopupElement);

});

ÔÚδÀ´£¬½«Óиü¶àµÄ¿ò¼Ü¿ÉÒÔʹÓÃÀàËÆÕâÑùµÄÐÎʽ£¬¼¯³Éµ½ Web Components Ó¦ÓÃÖС£

¼¯³ÉÔÚÏÖÓпò¼ÜÖÐµÄ Web Components

ÁíÍâÒ»ÖÖ·½Ê½£¬ÔòÊÇÀàËÆÓÚ Stencil µÄÐÎʽ£¬½«×é¼þÖ±½Ó¹¹½¨³É Web Components ÐÎʽµÄ×é¼þ£¬ËæºóÔÚ¶ÔÓ¦µÄÖîÈ磬Èç React »òÕß Angular ÖÐÖ±½ÓÒýÓá£

ÈçÏÂÊÇÒ»¸öÔÚ React ÖÐÒýÓà Stencil Éú³ÉµÄ Web Components µÄÀý×Ó£º

import React from 'react';

import ReactDOM from 'react-dom';

import './index.css';

import App from './App';

import registerServiceWorker from './registerServiceWorker';


import 'test-components/testcomponents';


ReactDOM.render(<App />, document.getElementById('root'));

registerServiceWorker();

 

ÔÚÕâÖÖÇé¿ö֮ϣ¬ÎÒÃǾͿÉÒÔ¹¹½¨³ö¶ÀÁ¢ÓÚ¿ò¼ÜµÄ×é¼þ¡£

ͬÑùµÄ Stencil ÈÔȻҲֻÊÇÖ§³Ö×î½üµÄһЩä¯ÀÀÆ÷£¬±ÈÈ磺Chrome¡¢Safari¡¢Firefox¡¢Edge ºÍ IE11

¸´ºÏÐÍ

¸´ºÏÐÍ£¬¶Ô¾ÍÊÇÉÏÃæµÄ¼¸¸öÀà±ðÖУ¬Ëæ±ãÌô¼¸ÖÖ×éºÏµ½Ò»Æð¡£

ÎҾͲ»·Ï»°ÁË~~¡£

½áÂÛ

ÄÇô£¬ÎÒÃÇÓ¦¸ÃÓÃÄÄÖÖ΢ǰ¶Ë·½°¸ÄØ£¿´ð°¸¼ûÏÂһƪ¡¶Î¢Ç°¶Ë¿ìËÙÑ¡ÐÍÖ¸ÄÏ¡·

Ïà¹Ø×ÊÁÏ£º

MDN Ó°×ÓDOM£¨Shadow DOM£©

Web Components

Shadow DOM v1£º¶ÀÁ¢µÄÍøÂç×é¼þ

 

 
   
2780 ´Îä¯ÀÀ       32
Ïà¹ØÎÄÕÂ

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

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

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
ÈçºÎÉè¼Æ¸ßÀ©Õ¹µÄÔÚÏßÍøÒ³ÖÆ×÷ƽ̨
electronÈëÃÅÐĵÃ
ʹÓà Electron ¹¹½¨×ÀÃæÓ¦ÓÃ
VUE.JS×é¼þ»¯¿ª·¢Êµ¼ù
ÉîÈëÀí½âJSCore
×îпγÌ
HTML 5 + CSS3 Ô­ÀíÓ뿪·¢Ó¦ÓÃ
Webǰ¶Ë¸ß¼¶¹¤³Ìʦ±Ø±¸¼¼ÄÜʵս
Vue´óÐÍÏîÄ¿¿ª·¢ÊµÕ½
ReactÔ­ÀíÓëʵ¼ù
Vue.js½ø½×Óë°¸Àýʵ¼ù
³É¹¦°¸Àý
Öн»¼¯ÍÅ ¹¹½¨Web×Ô¶¯»¯²âÊÔ¿ò¼Ü
ijָÃûµçÐŹ«Ë¾ Vue.js½ø½×Óë°¸Àý
¹úµçÍ¨ÍøÂç¼¼Êõ HTML5+CSS3 +webǰ¶Ë¿ò
ÒÆ¶¯Í¨ÐÅ ÒÆ¶¯»¥ÁªÍøÓ¦Óÿª·¢Ô­Àí
ijµçÁ¦ÐÐ android¿ª·¢Æ½Ì¨×î¼Ñ