LaunchedEffect สำหรับโครูทีน
เริ่มงานแบบระงับที่ผูกกับการประกอบ
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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- LaunchedEffect สำหรับโครูทีน
- rememberCoroutineScope สำหรับเหตุการณ์
- DisposableEffect และการล้างทรัพยากร
- derivedStateOf และ snapshotFlow