รีวิวคอมโพเนนต์ Reactอบรมการเขียนโปรแกรม

รีวิวคอมโพเนนต์ React: state, hooks และการ re-render

ส่งมอบเริ่มต้น 1 วันรวมการแก้ไขตรวจสอบคุณภาพ
แพ็กเกจ
การคุ้มครองการชำระเงินรายละเอียด
  • การแก้ไขภายในแพ็กเกจไม่มีค่าใช้จ่าย
  • หากคุณไม่ตอบกลับภายใน 3 วันหลังส่งมอบ งานจะถูกยอมรับโดยอัตโนมัติ
สั่งซื้อ · ฿1,190

เงินจะถูกพักไว้เมื่อคุณชำระ และจะถูกโอนก็ต่อเมื่อคุณยอมรับงานแล้วเท่านั้น

รีวิวคอมโพเนนต์ React: state, hooks และการ re-render

ตัวอย่างผลงาน

ตัวอย่างของแพ็กเกจสแตนดาร์ด

รีวิวโค้ด: สคริปต์ Python นำเข้าออร์เดอร์ของร้านออนไลน์ขนาดเล็ก

โค้ดทำอะไร

  1. อ่าน orders.csv จากไฟล์ที่ส่งออกจากร้าน
  2. ในแต่ละบรรทัดออร์เดอร์ หาสินค้าตาม SKU ใน stock.xlsx แล้วหักจำนวน
  3. เขียนสต็อกที่อัปเดตกลับ และบันทึกยอดรวมลง import_log.txt

โครงสร้างชัดเจนและตั้งชื่อฟังก์ชันได้ดี ปัญหาส่วนใหญ่เกิดจากข้อมูลนำเข้าที่ไม่เป็นไปตามที่สคริปต์คาดไว้

บั๊กและจุดอ่อน

#บรรทัดความรุนแรงปัญหา
148สูงCSV เดียวกันนำเข้าซ้ำได้ ไม่มีการเช็กเลขออร์เดอร์ที่ประมวลผลแล้ว น่าจะเป็นสาเหตุหลักที่สต็อกติดลบ
272สูงint(row["qty"]) ล่มเมื่อเจอค่าว่างหรือ "2.0" จากออร์เดอร์ที่คืนเงิน
395กลางค้นหา SKU แบบแยกตัวพิมพ์เล็ก-ใหญ่: "gt-101" กับ "GT-101" ถูกมองเป็นคนละสินค้า
4130กลางเปิดไฟล์โดยไม่ระบุ encoding="utf-8" ชื่อสินค้าภาษาไทยจึงเพี้ยนบน Windows
5201ต่ำexcept: เปล่า ๆ ซ่อนข้อผิดพลาดจริง ทำให้ log ไม่มีประโยชน์

โค้ดที่แก้แล้ว

ปัญหาที่ 1: ข้ามออร์เดอร์ที่นำเข้าแล้ว

processed = load_processed_ids("processed_orders.txt")
for row in reader:
    if row["order_id"] in processed:
        continue
    # ... ตรรกะเดิม ...
    processed.add(row["order_id"])
save_processed_ids("processed_orders.txt", processed)

เหตุผล: แต่ละออร์เดอร์ถูกหักสต็อกครั้งเดียว แม้จะรันสคริปต์กับไฟล์เดิมซ้ำ

ปัญหาที่ 2: อ่านจำนวนอย่างปลอดภัย

raw = (row.get("qty") or "").strip()
try:
    qty = int(float(raw))
except ValueError:
    log.warning("ออร์เดอร์ %s: จำนวนไม่ถูกต้อง %r ข้ามไป", row["order_id"], raw)
    continue

เหตุผล: บรรทัดที่คืนเงินหรือคืนบางส่วนจะถูกข้ามพร้อมบันทึกที่ชัดเจน แทนที่จะหยุดการนำเข้าทั้งหมด

ปัญหาที่ 3: ทำ SKU ให้เป็นรูปแบบเดียวกัน

sku = row["sku"].strip().upper()

ใช้ .strip().upper() แบบเดียวกันตอนสร้างดิกชันนารีสต็อกด้วย

สไตล์และความอ่านง่าย

  • process() ยาว 90 บรรทัด ควรแยกเป็น read_orders, apply_to_stock, write_report
  • เปลี่ยนเลขคอลัมน์ตายตัว (row[7]) เป็นชื่อหัวคอลัมน์

โปรดทดสอบ การแก้แต่ละจุดกับสำเนาไฟล์ของคุณ: เราอ่านโค้ดแต่ไม่ได้รันจริง

ลูกค้า: เจ้าของร้านชาออนไลน์ ที่เขียนสคริปต์ Python 310 บรรทัด เพื่อนำออร์เดอร์จากไฟล์ CSV ที่ส่งออกจากร้านเข้าสเปรดชีตสต็อก ปัญหาที่แจ้งมา: "บางทีสต็อกติดลบ และสคริปต์ค้างกับบางไฟล์"

ลูกค้าและข้อมูลทั้งหมดเป็นเรื่องสมมติ

เกี่ยวกับบริการนี้

บั๊กส่วนใหญ่ใน React มาจากไม่กี่จุด: useEffect ที่รายการ dependency ผิด state ที่คัดลอกมาจาก props, key ที่หายไปในรายการ หรือค่าเก่าที่ค้างอยู่ใน closure เราไล่ดูคอมโพเนนต์ของคุณ อธิบายว่าแต่ละตัว render เมื่อไรและเพราะอะไร และชี้ hooks กับ state ที่ทำให้เกิดลูป ภาพกระพริบ หรือการ re-render เกินจำเป็น คุณจะได้รับโค้ดคอมโพเนนต์ที่แก้ไขแล้วพร้อมคำอธิบายง่าย ๆ ของแต่ละการเปลี่ยนแปลง

สิ่งที่รวมอยู่ในบริการ

  • สิ่งที่คุณจะได้รับรีวิวเป็นลายลักษณ์อักษรในหน้าคำสั่งซื้อ: คอมโพเนนต์ของคุณ render อย่างไร รายการปัญหาเรื่อง hooks และ state เรียงตามความสำคัญ และส่วนของคอมโพเนนต์ที่แก้ไขแล้ว แพ็กเกจพรีเมียมเพิ่มคำแนะนำเรื่องการแยกคอมโพเนนต์และตำแหน่งที่ควรเก็บ state
  • ตรวจ useEffectDependency, cleanup, ลูป
  • ตำแหน่งของ stateDerived state และการยก state ขึ้น
  • การ re-renderทำไมคอมโพเนนต์จึง render ซ้ำ
  • รายการและ keyKey ที่คงที่และการอัปเดตรายการ
  • คอมโพเนนต์ที่แก้ไขแล้วพร้อมเหตุผลของแต่ละการเปลี่ยนแปลง

วิธีการทำงาน

  1. 1
    รายละเอียดงานคุณวางคอมโพเนนต์และคำเตือน
  2. 2
    การอ่านเราไล่ดู props, state และ effects
  3. 3
    รีวิวคุณได้รับรายการปัญหาและโค้ดที่แก้ไขแล้ว

สิ่งที่เราต้องการจากคุณ

คอมโพเนนต์ที่วางเป็นข้อความหรือภาพหน้าจอ เวอร์ชัน React และเฟรมเวิร์ก สิ่งที่หน้าจอควรทำ และคำเตือนหรือข้อผิดพลาดที่คุณเห็น

เราจะถามคุณว่า:

  • ใช้ React เวอร์ชันใดและเฟรมเวิร์กอะไร
  • คุณเก็บ state ไว้ที่ไหน
  • อะไรผิดพลาดบนหน้าจอ
  • คุณใช้ TypeScript หรือไม่

เปรียบเทียบแพ็กเกจ

แพ็กเกจเบสิกคอมโพเนนต์ไม่เกิน 100 บรรทัด฿510สแตนดาร์ดคอมโพเนนต์ไม่เกิน 400 บรรทัด฿1,190พรีเมียมไม่เกิน 1,000 บรรทัด พร้อมคำแนะนำด้านโครงสร้าง฿2,346
กำหนดส่ง1 วัน2 วัน3 วัน
การแก้ไข123
จำนวนบรรทัดของโค้ดไม่เกิน 100ไม่เกิน 400ไม่เกิน 1,000
ส่วนของโค้ดที่แก้ไขแล้วมีมีมี
คำแนะนำด้านโครงสร้างไม่มีไม่มีมี
สั่งซื้อ เบสิกสั่งซื้อ สแตนดาร์ดสั่งซื้อ พรีเมียม

การคุ้มครองการชำระเงิน

คุณชำระเงินเมื่อสั่งซื้อ แต่เงินจะถูกโอนเฉพาะสำหรับงานที่ยอมรับแล้วเท่านั้น

  • ราคาคงที่ราคาแพ็กเกจจะไม่เปลี่ยนแปลงหลังจากคุณชำระเงิน
  • เงินถูกพักไว้เมื่อคุณชำระเงิน ยอดเงินจะถูกพักไว้เท่านั้น และจะถูกโอนออกเมื่อคุณยอมรับงานแล้ว
  • ตรวจสอบก่อนส่งมอบผลงานทุกชิ้นผ่านการตรวจสอบคุณภาพก่อนถึงมือคุณ และคุณจะเห็นผลงานในหน้าคำสั่งซื้อก่อนยอมรับงาน
  • แก้ไขฟรีขอแก้ไขภายในขอบเขตรายละเอียดงานของคุณได้ตามจำนวนครั้งที่แพ็กเกจกำหนด
  • ยอมรับงานหลัง 3 วันหากภายใน 3 วันหลังส่งมอบ คุณไม่ได้ยอมรับงานหรือขอแก้ไข งานจะถูกยอมรับโดยอัตโนมัติ หากคุณเขียนข้อความในแชทคำสั่งซื้อหลังส่งมอบ คำสั่งซื้อจะรอไว้ก่อน เมื่อเราตอบกลับแล้ว เราอาจเริ่มนับ 3 วันใหม่ และจะแจ้งให้ทราบในแชท
  • ทำใหม่หรือคืนเงินเต็มจำนวนหากผลงานไม่ตรงตามรายละเอียดงานและการแก้ไขยังไม่ช่วย หรืองานใช้เวลาเกินกำหนดส่งมากกว่าสองเท่า ให้เขียนแจ้งในแชทคำสั่งซื้อ เราจะทำงานใหม่หรือคืนเงินให้เต็มจำนวน
วิธีการทำงาน →

คำถามและคำตอบ

รันโค้ดของฉันหรือไม่

ไม่ เราอ่านอย่างละเอียดและวิเคราะห์ว่าโค้ดทำงานอย่างไร แต่ไม่ได้รันโค้ด โปรดทดสอบทุกการแก้ไขที่แนะนำในโปรเจกต์ของคุณเอง

ควรครอบทุกอย่างด้วย useMemo และ useCallback หรือไม่

ส่วนใหญ่ไม่จำเป็น เราจะชี้ว่า memoization ช่วยได้ตรงไหนและตรงไหนที่เพิ่มแต่ความรก โดยอิงจากวิธีที่คอมโพเนนต์ของคุณ render จริง

รีวิว server components ของ Next.js ได้หรือไม่

ได้ แจ้งเราว่าไฟล์ใดเป็น server component และไฟล์ใดเป็น client component แล้วเราจะตรวจว่าอะไรทำงานที่ไหน

แพ็กเกจ
สั่งซื้อ · ฿1,190· 2 วัน