Jetpack Compose Academy · บทเรียน

LaunchedEffect สำหรับโครูทีน

เริ่มงานแบบระงับที่ผูกกับการประกอบ

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

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

เอฟเฟกต์ทำงานอยู่นอกองค์ประกอบ

Composable ควรบริสุทธิ์และทำงานซ้ำได้หลายครั้ง เมื่อจำเป็นต้องทำงานจริง เช่น เรียกเครือข่าย ให้ใช้ตัวจัดการผลข้างเคียงแทน

ทำความรู้จัก LaunchedEffect

LaunchedEffect จะเรียกใช้โค้ดแบบ suspend ในโครูทีนที่ผูกกับตำแหน่งของมันในองค์ประกอบ เหมาะสำหรับงานเริ่มต้นที่ทำครั้งเดียว 🚀

เริ่มทำงานเมื่อเข้าสู่องค์ประกอบ

เมื่อ LaunchedEffect เข้าสู่องค์ประกอบเป็นครั้งแรก ระบบจะเรียกใช้บล็อกของมัน เมื่อออกจากองค์ประกอบ ระบบจะยกเลิกโครูทีนให้คุณ

LaunchedEffect(Unit) {
    loadProfile()
}

คีย์ควบคุมการเริ่มใหม่

อาร์กิวเมนต์แรกคือ คีย์ หากคีย์เปลี่ยนระหว่างการจัดองค์ประกอบใหม่ โครูทีนเดิมจะถูกยกเลิกและเริ่มโครูทีนใหม่

LaunchedEffect(userId) {
    user = fetchUser(userId)
}

ใช้ Unit เพื่อทำงานครั้งเดียว

การส่ง Unit (หรือ true) เป็นคีย์ หมายความว่าเอฟเฟกต์จะไม่เริ่มใหม่ โดยจะทำงานครั้งเดียวเมื่อ Composable ปรากฏขึ้น

LaunchedEffect(Unit) {
    analytics.logScreenView()
}

เรียกใช้ฟังก์ชันแบบ suspend ได้

ภายในบล็อก คุณสามารถเรียกฟังก์ชันแบบ suspend ได้อย่างอิสระ เช่น delay หรือคำขอ Retrofit โดยระบบจัดเตรียมขอบเขตโครูทีนให้คุณ

LaunchedEffect(Unit) {
    delay(2000)
    showSplash = false
}

อย่าเปิดโครูทีนในเนื้อหา

การเรียกโครูทีนโดยตรงในเนื้อหา Composable เป็นข้อผิดพลาด เนื้อหาจะทำงานซ้ำทุกครั้งที่จัดองค์ประกอบใหม่ คุณจึงอาจเรียกงานนั้นซ้ำแล้วซ้ำอีก

การยกเลิกเกิดขึ้นโดยอัตโนมัติ

เมื่อผู้ใช้นำทางออกและ Composable ออกจากหน้าจอ Compose จะยกเลิกโครูทีนให้ ไม่มีการล้างข้อมูลเองและไม่มีการรั่วไหล

จับคู่กับสถานะ

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

var data by remember { mutableStateOf<List<Item>>(emptyList()) }
LaunchedEffect(Unit) { data = repo.load() }

ใช้หลายคีย์เพื่อรวมเงื่อนไขกระตุ้น

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

LaunchedEffect(query, sort) {
    results = search(query, sort)
}

รูปแบบการโหลดทั่วไป

เมื่อนำมารวมกันจะมีลำดับเหมือนสูตร: ตั้งค่า loading เป็น true รอผลลัพธ์ แล้วเก็บผลลัพธ์ไว้ Compose จะจัดการวงจรชีวิตรอบโครูทีนของคุณ

LaunchedEffect(id) {
    loading = true
    item = repo.get(id)
    loading = false
}

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

ลองคิดดูว่าการเริ่มใหม่ถูกควบคุมอย่างไร

สรุปทบทวน: LaunchedEffect

ทำได้ดีมากครับ/ค่ะ! LaunchedEffect เรียกใช้โค้ดแบบ suspend ที่ผูกกับองค์ประกอบ จะเริ่มใหม่เมื่อคีย์เปลี่ยน และยกเลิกตัวเองโดยอัตโนมัติเมื่อ Composable ออกไป 🎯

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

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

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

คอร์ส
30
บทเรียน
120

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

บทเรียน “LaunchedEffect สำหรับโครูทีน” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “LaunchedEffect สำหรับโครูทีน”

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

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

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

บทเรียน “LaunchedEffect สำหรับโครูทีน” ใช้เวลานานแค่ไหน

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

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

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

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

  1. LaunchedEffect สำหรับโครูทีน
  2. rememberCoroutineScope สำหรับเหตุการณ์
  3. DisposableEffect และการล้างทรัพยากร
  4. derivedStateOf และ snapshotFlow
← กลับไปที่ Jetpack Compose Academy