Stake¹ÙÍø

ÍøÕ¾´úÂë»ù´¡ÈëÃÅ£ºÃâ·Ñ·Ö²½´î½¨¿ÉÔËÐÐÍøÒ³Ö®Ò»

ÍøÕ¾´úÂë»ù´¡ÈëÃÅ£ºÃâ·Ñ·Ö²½´î½¨¿ÉÔËÐÐÍøÒ³Ö®Ò»

ÍøÕ¾´úÂë»ù´¡ÈëÃÅÄܹ»´ÓÒ»¸ö×îÓ×ÍøÒ³ÆðÍ·£ºÏÅ×à HTML д³öÄÚÈݽṹ£¬ÔÙÓà CSS µ÷Õû²¼¾ÖºÍÐÎ×´£¬×îºóÓà JavaScript Ôö³¤µã»÷¡¢Ð£ÑéºÍÊý¾Ý½»»¥¡£³ï±¸Ò»¸öÃâ·ÑµÄÎı¾±à×ëÆ÷ºÍä¯ÀÀÆ÷¼´¿ÉʵÏÖµÚÒ»´Î²ÙÁ·£¬²»±ØÒªÒ»Â·Í·¾Í²É°ì·þÎñÆ÷»ò½ø½¨¸´ÔÓ¿ò¼Ü¡£ÊµÏÖ±¾ÎIJ½Öèºó£¬Ä㽫µÃµ½Ò»¸öÄÜÔÚä¯ÀÀÆ÷Öдò¿ª¡¢¾ß±¸¸ù»ù½»»¥£¬²¢ÇÒ֪·ºÎʱ±ØÒª½ÓÈë½Ó¿ÚµÄµ¥Ò»ÍøÕ¾¡£

ÍøÕ¾´úÂë»ù´¡ÈëÃÅ´ÓÄÄÀïÆðÍ·£¿

ÐÂÊÖ×îÈÝÒ×°Ñ¡°ÍøÕ¾¡±Àí½â³ÉÒ»ÕûÌ׸´ÔÓϵͳ£¬ÆäÊµÍøÒ³Ç°¶Ëͨ³£Äܹ»ÏȲð³ÉÈý²ã¡£HTMLÕÆ¹Ü±êÌâ¡¢¶ÎÂä¡¢°´Å¥¡¢±íµ¥µÈÄÚÈݽṹ£»CSSÕÆ¹ÜÉ«²Ê¡¢¼ä¾à¡¢¿í¶ÈºÍÏìӦʽ²¼¾Ö£»JavaScriptÕÆ¹Üµã»÷ÊÂÎñ¡¢Êý¾ÝУÑéºÍÒ³Ãæ×´Ì¬±ä¶¯¡£

  • ֻչʾ¹Ì¶¨ÄÚÈÝʱ£ºHTML ¼Ó CSS ¾ÍÄܹ»ÊµÏÖÓ×ÎÒ½éÉÜÒ³¡¢²úÆ·×¢Ã÷Ò³»ò¾²Ì¬»î¶¯Ò³¡£
  • ±ØÖصã»÷ºóŤתÄÚÈÝʱ£º²ÎÓë JavaScript£¬ÀýÈç·¢Õ¹²Ëµ¥¡¢Çл»±êÇ©ºÍÌύǰУÑé¡£
  • ±ØÒª±£ÁôÓû§Êý¾Ýʱ£ºÍ¨³£»¹ÒªÓкó¶Ë·þÎñºÍ½Ó¿Ú£¬ÀýÈçµÇ¼¡¢ÆÀÂÛ¡¢¶©µ¥»òÊý¾Ý¿â²éÎÊ¡£

½¨ÒéÏȳÉÁ¢Ò»¸öÃûΪ my-site µÄÎļþ¼Ð£¬ÔÙ´´½¨ÏÂÃæÈý¸öÎļþ¡£ÎļþÃûºÍõ辶Ҫά³ÖÒ»Ö£¬²»È»ä¯ÀÀÆ÷¿ÉÄÜÕÒ²»µ½ÐÎ×´»ò¾ç±¾¡£

my-site/ ©À©¤ index.html ©À©¤ style.css ©¸©¤ script.js

½ø½¨Ê±Äܹ»Ê¹ÓÃËÁÒâ¿ÉÄܱ£Áô´¿Îı¾µÄ±à×ëÆ÷£¬ÒÔ¼°³£¼ûä¯ÀÀÆ÷¡£°Ñ´úÂë±£Áôºó£¬Ö±½ÓË«»÷ index.html£¬¾ÍÄÜ¿´µ½µÚÒ»¸ö±¾µØÍøÒ³¡£Õâ¸ö·½Ê½ÊʺÏÈëÃź;²Ì¬Ò³Ãæ²ÙÁ·£»ÈôÊǺóÐøÊ¹ÓÃÄ£¿é»¯´úÂë¡¢½Ó¿Ú´úÀí»ò¹¹½¨¹¤¾ß£¬ÔÙ¸ÄÓñ¾µØ¿ª·¢·þÎñÆ÷¡£

Ôõô°´²½Öèд³öµÚÒ»¸ö¿ÉÔËÐÐÒ³Ãæ£¿

µÚÒ»²½£ºÏÈд HTML ÄÚÈݽṹ

´ò¿ª index.html£¬ÊäÈëÒÔÏ´úÂë¡£ÕâÀïʹÓÃÁËҳͷ¡¢ÖØÒªÄÚÈÝ¡¢±íµ¥ºÍ°´Å¥£¬·½±ãºóÐø±ðÀë²ÙÁ·ÐÎ×´Óë½»»¥¡£

<!doctype html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>ÎҵĵÚÒ»¸öÍøÒ³</title> <link rel="stylesheet" href="style.css"> </head> <body> <header class="site-header"> <h1>ÎҵĵÚÒ»¸öÍøÒ³</h1> <p>Óà HTML¡¢CSS ºÍ JavaScript ʵÏÖ»ù´¡²ÙÁ·¡£</p> </header> <main class="container"> <section class="card"> <h2>½ø½¨Ö¸±ê</h2> <p>°ÑÎÕÒ³Ãæ½á¹¹¡¢¸ù»ùÐÎ×´ºÍ°´Å¥½»»¥¡£</p> <button id="messageButton">µã»÷²é¿´ÌáÐÑ</button> <p id="message" aria-live="polite"></p> </section> <section class="card"> <h2>ÁôϳƺÅ</h2> <form id="nameForm"> <label for="name">ÄãµÄÃû×Ö</label> <input id="name" name="name" required> <button type="submit">Ìá½»</button> </form> <p id="result" aria-live="polite"></p> </section> </main> <script src="script.js"></script> </body> </html>

ÕâÀïµÄ id ÊÇ JavaScript ²éÕÒÔªËØµÄ±êʶ£¬class ÖØÒªÓÃÓÚ CSS ͳһÉèÖÃÐÎ×´£¬label ÔòÄÜÈÃ±íµ¥×ֶθüÈÝÒ×Àí½âºÍ²Ù×÷¡£Ð´ HTML ʱ£¬Ïȱ£ÕϱêǩǶÌׯëÈ«£¬ÔÙ˼¿¼Ò³ÃæÊÇ·ñºÃ¿´¡£

µÚ¶þ²½£ºÓà CSS µ÷ÕûÍøÒ³±í¹Û

´ò¿ª style.css£¬²ÎÓëÒÔÏÂÐÎ×´¡£CSS µÄÑ¡ÔñÆ÷»áƾ¾Ý±êÊðÃû¡¢ÀàÃû»ò id ÕÒµ½ HTML ÔªËØ£¬²¢ÎªÆäÉèÖÃÏÔʾ³ÉЧ¡£

* { box-sizing: border-box; } body { margin: 0; font-family: Arial, "Microsoft YaHei", sans-serif; color: #24324a; background: #f4f7fb; } .site-header { padding: 48px 20px; text-align: center; color: white; background: #2563eb; } .container { width: min(92%, 760px); margin: 28px auto; } .card { margin-bottom: 20px; padding: 24px; background: white; border-radius: 12px; box-shadow: 0 4px 16px rgba(0, 0, 0, .08); } button { padding: 10px 16px; border: 0; border-radius: 6px; color: white; background: #2563eb; cursor: pointer; } input { display: block; width: 100%; max-width: 360px; margin: 8px 0 14px; padding: 10px; border: 1px solid #cbd5e1; border-radius: 6px; } @media (max-width: 480px) { .site-header { padding: 32px 16px; } .card { padding: 18px; } }

box-sizing: border-boxÄܹ»Èÿí¶ÈÍÆËã¸üÖ±¹Û£¬max-widthÄÜÔ¤·ÀÄÚÈÝÔÚ´óÆÁÄ»ÉϹý¿í£¬Ã½Ìå²éÎÊÔòÓÃÓÚµ÷ÕûÊÖ»úÆÁĻϵļä¾à¡£ÈëÃÅʱ²»ÓüÇסËùÓÐ CSS ÊôÐÔ£¬Ïȹ۲조ѡÔñÆ÷¡ªÊôÐÔ¡ª³ÉЧ¡±µÄ¶ÔÓ¦¹ØÏµ¡£

µÚÈý²½£ºÓà JavaScript Ôö³¤½»»¥

´ò¿ª script.js£¬Îª°´Å¥ºÍ±íµ¥Ôö³¤ÊÂÎñ¡£ÏÂÃæµÄ´úÂëÖ»ÔÚµ±Ç°Ò³ÃæÖд¦ÖÃÊý¾Ý£¬²»»á×Ô¶¯°ÑÃû×Ö·¢Ë͵½·þÎñÆ÷¡£

const messageButton = document.querySelector("#messageButton"); const message = document.querySelector("#message"); const nameForm = document.querySelector("#nameForm"); const nameInput = document.querySelector("#name"); const result = document.querySelector("#result"); messageButton.addEventListener("click", () => { message.textContent = "°´Å¥½»»¥ÒѾ­ÉúЧ¡£"; }); nameForm.addEventListener("submit", (event) => { event.preventDefault(); const name = nameInput.value.trim(); if (!name) { result.textContent = "ÇëÊäÈë³ÆºÅºóÔÙÌá½»¡£"; return; } result.textContent = `ÄãºÃ£¬${name}£¡`; });

±£ÁôÈý¸öÎļþºó³Áдò¿ª»òˢРindex.html¡£µã»÷°´Å¥Ó¦ÏÔʾÌáÐÑ£¬Ìá½»¿Õ±íµ¥Ê±Ó¦ÏÔʾУÑéÐÅÏ¢£¬ÊäÈëÃû×ÖºóÓ¦ÏÔʾÎʺòÓï¡£ÈôÊÇÒ³ÃæÃ»Óб䶯£¬ÏȲ鳭ÎļþÊÇ·ñÕæµÄ±£Áô£¬ÔÙ°´ä¯ÀÀÆ÷¿ª·¢Õß¹¤¾ßÖеÄÃýÎóÌáÐѲ鳭õè¾¶¡¢Æ´Ð´ºÍÀ¨ºÅ¡£

Ò³ÃæÄÜ´ò¿ªÖ®ºó£¬Ê²Ã´Ê±³½±ØÒª½Ó¿Ú£¿

ÉÏÃæµÄʾÀýÊÇǰ¶Ë±¾µØ½»»¥£¬Ë¢ÐÂÒ³ÃæºóÊý¾Ý»áÒþû¡£ÈôÊÇÐèÒªÊÇ¡°Ìá½»ºó±£Áô¡±¡°´Ó·þÎñÆ÷¶ÁÈ¡ÉÌÆ·ÁÐ±í¡±»ò¡°µÇ¼ºó·µ»ØÓû§ÐÅÏ¢¡±£¬¾Í±ØÒªºó¶ËÌṩ½Ó¿Ú¡£´Ëʱ²»ÄÜÖ»ÔÚǰ¶ËÈç¹û½Ó¿Ú´æÔÚ£¬¶øÒªÏÈÃ÷È·Ë«·½×ñÊØµÄ½Ó¿Ú×óȯ¡£

¾²Ì¬Ò³ÃæÓë½Ó¿ÚÒ³ÃæµÄºÏÓÃǰÌá
ÐèÒªÇé¿ö ÊʺϵÄʵÏÖ ÖØÒªÏÞ¶È
¹Ì¶¨ÎÄ×Ö¡¢Í¼Æ¬ºÍµ¥Ò»Õ¹Ê¾ HTML + CSS ÄÚÈݸüбØÒªÅú¸ÄÎļþ
½öÔÚä¯ÀÀÆ÷ÄÚÇл»»òУÑé HTML + CSS + JavaScript Êý¾Ýͨ³£²»Äܳ־ñ£Áô
µÇ¼¡¢²éÎÊ¡¢±£Áô¡¢¶àÈ˹²ÏíÊý¾Ý ǰ¶Ë + ºó¶Ë½Ó¿Ú + Êý¾Ý¿â ±ØÒªÃ÷È·ÒªÇó¡¢ÏìÓ¦ºÍÃýÎ󹿶¨

Ò»¸ö½Ó¿Ú×óȯÖÁÉÙҪдÃ÷ÏÔÒªÇó²½Öè¡¢õè¾¶¡¢²ÎÊý¡¢³É¹¦ÏìÓ¦¡¢Ê§°ÜÏìÓ¦ºÍÉí·ÝÒªÇó¡£ÀýÈ磬Èç¹ûºó¶ËÔ¼¶¨Ìṩһ¸öÉÌÆ·²éÎʽӿÚ£¬Æä×óȯÄܹ»Ð´³É£º

ÒªÇó²½Ö裺GET ÒªÇóõè¾¶£º/api/products ²éÎʲÎÊý£ºkeyword£¬¿ÉÑ¡£¬×Ö·û´® ³É¹¦ÏìÓ¦£º { "code": 0, "data": [ { "id": 1, "name": "²ÙÁ·ÉÌÆ·", "price": 19.9 } ] } ʧ°ÜÏìÓ¦£º { "code": 400, "message": "keyword ²ÎÊýÌåʽ²»ÕýÈ·" }

ÕâÖ»ÊǽӿÚÉè¼ÆÊ¾Àý£¬²»´ú±íµ±Ç°Ò³ÃæÒѾ­Õ¼ÓиõØÖ·¡£Ö»Óкó¶ËÏÖʵ²¿ÊðÁËÒ»Ñùõè¾¶£¬²¢ÒÀÕÕÔ¼¶¨·µ»ØÊý¾Ý£¬Ç°¶ËÒªÇó²ÅÓпÉÑéÖ¤µÄÁ˾Ö¡£µ±Ç°¶Ë±ØÒªÅ²ÓÃÕâ¸ö½Ó¿Úʱ£¬Äܹ»Ê¹ÓÃÀàËÆÏÂÃæµÄ´úÂ룺

async function loadProducts(keyword = "") { const params = new URLSearchParams({ keyword }); const response = await fetch(`/api/products?${params}`); if (!response.ok) { throw new Error(`HTTP ״̬Òì³££º${response.status}`); } const result = await response.json(); if (result.code !== 0) { throw new Error(result.message || "ÒµÎñ´¦ÖÃʧ°Ü"); } return result.data; }

ÈôÊǺó¶Ë»®¶¨Ê¹Óà POST£¬Ç°¶Ë¾Í²»ÄܳÖÐøÓà GET£»ÈôÊÇ·µ»Ø×ֶνРitems£¬Ç°¶ËÒ²²»ÄÜÖ±½Ó¶ÁÈ¡ data¡£½Ó¿ÚÁªµ÷ʱӦÒÔÏÖʵ×óȯºÍÕæÊµÏìӦΪ׼£¬²»ÒªÓÉÓÚʾÀý´úÂëÄܹ»ÔËÐУ¬¾ÍÒÔΪ·þÎñÆ÷ÒѾ­¾ß±¸¶ÔÓ¦ÄÜÁ¦¡£

Óöµ½Ò³ÃæÒ쳣ʱ£¬Ó¦¸ÃÏȲ鳭ʲô£¿

  1. Ò³ÃæÆëÈ«¿Õȱ£º²é³­ index.html ÊÇ·ñ±£ÁôΪ HTML Îļþ£¬¶ø²»ÊÇÎó±£Áô³É txt Îļþ£»Ôٲ鳭±êÇ©ÊÇ·ñÉÙÁ˼âÀ¨ºÅ»òÒýºÅ¡£
  2. ÐÎ״ûÓÐÉúЧ£ºÈ·ÈÏ style.css Óë index.html ÔÚͳһĿ¼£¬²¢²é³­ link µÄÎļþÃû´óÓ×д¡£
  3. °´Å¥Ã»Óз´Ó³£º²é³­ script.js õè¾¶¡¢ÔªËØ id ÊÇ·ñÒ»Ö£¬ÒÔ¼°ä¯ÀÀÆ÷½ÚÔį̀ÊÇ·ñ³öÏÖ JavaScript Óï·¨ÃýÎó¡£
  4. Ìá½»ºóÒ³ÃæË¢Ð£ºÈ·ÈÏ±íµ¥ÊÂÎñÖÐŲÓÃÁË event.preventDefault()£»ÈôÊǵÄÈ·ÒªÌá½»µ½·þÎñÆ÷£¬ÔòÓ¦¸ÄΪÒÀÕÕ½Ó¿Ú×óȯ·¢ËÍÒªÇó¡£
  5. ½Ó¿ÚÒªÇóʧ°Ü£º±ðÀë²é³­ÒªÇóµØÖ·¡¢²½Öè¡¢²ÎÊý¡¢ÏìӦ״̬ÂëºÍ·µ»Ø JSON£¬²»ÒªÖ»¿´Ò³ÃæÉÏÊÇ·ñÏÔʾÁËÁ˾Ö¡£

ѧÍê»ù´¡ºó£¬Ôõô³ÖÐø²ÙÁ·¸üÓÐЧ£¿

Äܹ»°´¡°ÄÜÔËÐÓתÄÜÅú¸Ä¡ªÄÜÚ¹ÊÍ¡ªÄÜÁªµ÷¡±µÄ°¤´Î²ÙÁ·¡£ÏȰÑʾÀýÖеıêÌ⡢ɫ²ÊºÍ°¸ë¹»»³É×Ô¼ºµÄÄÚÈÝ£»¶øºóÔö³¤Ò»¸öµ¼º½ÇøÓò»ò¿¨Æ¬Áбí£»½Ó×ų¢Ê԰ѳÁ¸´µÄÉÌÆ·¿¨Æ¬¸Ä³É JavaScript ƾ¾ÝÊý×éÌìÉú£»×îºóÔÙΪËÑË÷Ö°ÄÜÉè¼Æ½Ó¿Ú×óȯ¡£

ÈôÊÇÖ¸±êÖ»ÊÇÔì×÷½éÉÜÒ³£¬³ÖÐø½ø½¨ÓïÒ廯 HTML¡¢CSS ²¼¾ÖºÍÒÆ¶¯¶ËÊÊÅä¼´¿É£¬²»ÓöÙʱÒýÈë¿ò¼Ü¡£ÈôÊÇÖ¸±êÊÇÖÎÀíºó¶Ü¡¢»áԱϵͳ»òÊý¾ÝÀûÓã¬ÔòÓ¦ÔÚ°ÑÎÕ»ù´¡Óï·¨ºó½ø½¨ HTTP¡¢JSON¡¢±íµ¥Ìá½»¡¢Éí·ÝÈÏÖ¤ºÍÊý¾Ý¿â¡£ÕâÑùµÄ½ø½¨°¤´ÎÄÜÈÃÿһ²½¶¼ÓпÉÔËÐÐÁ˾Ö£¬Ò²ÄÜÔ¤·ÀÔÚÉÐδÀí½âÍøÒ³½á¹¹Ê±¶Ñµþ¸´ÔÓ¹¤¾ß¡£

[ÔðÈαà×룺ÕÔÉÙ¿µ]

ΪÄúÍÆ¼ö

ÈȵãÎÄÕÂ

½Ü³öÊÓÆµ

·ï»Ë×ÊѶ¹Ù·½Î¢ÐÅ
·ï»Ë×ÊѶ¹Ù·½Î¢ÐÅ
¹Ø×¢¸ü¶à×ÊѶ
¡¾ÍøÕ¾µØÍ¼¡¿