เลิกทำ/ทำซ้ำด้วยประวัติ Store
สร้างสแตกประวัติครอบ store ที่เขียนค่าได้ เพื่อรองรับการเลิกทำและทำซ้ำ
เลิกทำ/ทำซ้ำด้วยประวัติ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- สถาปัตยกรรม Store: โมดูลฟีเจอร์
- รูปแบบ Event Bus ร่วมกับ Store
- การอัปเดต UI เชิงมองโลกในแง่ดี
- เลิกทำ/ทำซ้ำด้วยประวัติ Store