Sveltejs Academy · บทเรียน

เลิกทำ/ทำซ้ำด้วยประวัติ Store

สร้างสแตกประวัติครอบ store ที่เขียนค่าได้ เพื่อรองรับการเลิกทำและทำซ้ำ

บทเรียน 4 จาก 413 ขั้นตอน

เลิกทำ/ทำซ้ำด้วยประวัติ Store เป็นบทเรียน Sveltejs Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Sveltejs Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Sveltejs Academy มีบทเรียนทั้งหมด 4 บทเรียน

กองประวัติ

ห่อหุ้มสโตร์แบบเขียนได้ด้วยอาร์เรย์ past/present/future เพื่อรองรับการเลิกทำและทำซ้ำ

การนำไปใช้พื้นฐาน

ดูแลรายการสถานะก่อนหน้า

function createHistory(initial) {
  let past = [], future = [];
  const state = writable(initial);
  return {
    subscribe: state.subscribe,
    set(v) { past.push(get(state)); future = []; state.set(v); },
    undo() { if (past.length) { future.push(get(state)); state.set(past.pop()); } },
    redo() { if (future.length) { past.push(get(state)); state.set(future.pop()); } }
  };
}

จำกัดขนาดกอง

จำกัดความยาวของประวัติเพื่อควบคุมการใช้หน่วยความจำ

สำเนาแบบลึก

เพิ่มสำเนาแบบลึกของออบเจ็กต์ลงในกอง เพื่อหลีกเลี่ยงปัญหาจากการเปลี่ยนแปลงค่า

แป้นพิมพ์ลัด

ผูก Ctrl+Z และ Ctrl+Shift+Z กับการเลิกทำ/ทำซ้ำ เพื่อให้ใช้งานได้เป็นธรรมชาติ

การคงประวัติไว้

บันทึกลงใน localStorage เพื่อรองรับการเลิกทำข้ามเซสชัน โดยคำนึงถึงขนาดข้อมูล

ประสิทธิภาพ

สำหรับสถานะขนาดใหญ่ ให้เก็บส่วนต่างแทนภาพรวมทั้งหมด

การแตกแขนง

แอปส่วนใหญ่จะล้าง future เมื่อมีการดำเนินการใหม่ ส่วนตัวแก้ไขบางประเภทจะเก็บประวัติแบบแตกแขนงไว้

ตัวเลือกจากไลบรารี

ไลบรารีอย่าง svelte-undo มีสโตร์ประวัติที่พร้อมใช้งาน

คำใบ้บนส่วนติดต่อผู้ใช้

ปิดใช้งานปุ่มเลิกทำ/ทำซ้ำเมื่อไม่มีสิ่งให้เลิกทำหรือทำซ้ำ

การทดสอบ

ทดสอบลำดับการดำเนินการและการเลิกทำ/ทำซ้ำ เพื่อให้แน่ใจว่าการย้อนกลับถูกต้อง

ตรวจสอบอย่างรวดเร็ว

กอง future ทำหน้าที่อะไร

สรุปทบทวน

นำการเลิกทำ/ทำซ้ำมาใช้ด้วยกอง past/present/future รอบสโตร์แบบเขียนได้ จำกัดขนาดและผูกแป้นพิมพ์ลัด

เริ่มต้นได้ฟรี

เรียนรู้ HTML ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
41
บทเรียน
163

คำถามที่พบบ่อย

บทเรียน “เลิกทำ/ทำซ้ำด้วยประวัติ Store” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “เลิกทำ/ทำซ้ำด้วยประวัติ Store” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Sveltejs Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Sveltejs Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เลิกทำ/ทำซ้ำด้วยประวัติ Store”

สร้างสแตกประวัติครอบ store ที่เขียนค่าได้ เพื่อรองรับการเลิกทำและทำซ้ำ คุณปฏิบัติ Sveltejs Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Sveltejs Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Sveltejs Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “เลิกทำ/ทำซ้ำด้วยประวัติ Store” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Sveltejs Academy นี้ได้ไหม

ได้ บทเรียน Sveltejs Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. สถาปัตยกรรม Store: โมดูลฟีเจอร์
  2. รูปแบบ Event Bus ร่วมกับ Store
  3. การอัปเดต UI เชิงมองโลกในแง่ดี
  4. เลิกทำ/ทำซ้ำด้วยประวัติ Store
← กลับไปที่ Sveltejs Academy