# Offline-First Architecture (React Native) > NetInfo, กลยุทธ์การซิงค์, การแก้ไขข้อขัดแย้ง, การจัดการคิว, UX แบบออฟไลน์ - 20 คำถามสัมภาษณ์ - Senior - [คำถามสัมภาษณ์: React Native](https://sharpskill.dev/th/technologies/react-native/interview-questions.md) ## 1. สถาปัตยกรรมแบบ offline-first ในบริบทของแอปพลิเคชันมือถือคืออะไร? **คำตอบ** สถาปัตยกรรมแบบ offline-first เป็นแนวทางการออกแบบที่แอปพลิเคชันถูกสร้างให้ทำงานกับข้อมูลในเครื่องเป็นหลัก โดยการซิงค์กับเซิร์ฟเวอร์เป็นเรื่องรอง ข้อมูลจะถูกจัดเก็บในเครื่องก่อนแล้วจึงซิงค์กับ backend เมื่อมีการเชื่อมต่อ แนวทางนี้รับประกันประสบการณ์ผู้ใช้ที่ราบรื่นแม้ไม่มีการเชื่อมต่อเครือข่าย ซึ่งต่างจากแนวทาง online-first ที่ต้องพึ่งพาการเชื่อมต่อจึงจะทำงานได้ ## 2. ควรใช้แพ็กเกจใดในการตรวจจับสถานะการเชื่อมต่อเครือข่ายใน React Native? **คำตอบ** @react-native-community/netinfo เป็นแพ็กเกจมาตรฐานสำหรับตรวจจับสถานะการเชื่อมต่อเครือข่ายใน React Native โดยให้ข้อมูลว่าอุปกรณ์เชื่อมต่ออยู่หรือไม่ ประเภทการเชื่อมต่อ (WiFi, เซลลูลาร์) และมี listener สำหรับตอบสนองต่อการเปลี่ยนแปลงการเชื่อมต่อแบบเรียลไทม์ ถือเป็นส่วนประกอบสำคัญสำหรับการสร้างสถาปัตยกรรมแบบ offline-first ## 3. จะใช้ NetInfo เพื่อรับฟังการเปลี่ยนแปลงการเชื่อมต่อแบบเรียลไทม์ได้อย่างไร? **คำตอบ** NetInfo.addEventListener ช่วยให้สามารถสมัครรับการเปลี่ยนแปลงการเชื่อมต่อและคืนค่าฟังก์ชันสำหรับยกเลิกการสมัคร ฟังก์ชันนี้ควรถูกเรียกใน cleanup ของ useEffect เพื่อป้องกันการรั่วไหลของหน่วยความจำ callback จะได้รับอ็อบเจกต์ state ที่มี isConnected, type และข้อมูลอื่น ๆ เกี่ยวกับการเชื่อมต่อปัจจุบัน แนวทางนี้จำเป็นอย่างยิ่งสำหรับการตอบสนองต่อการเปลี่ยนแปลงของเครือข่ายแบบไดนามิก ## มีอีก 17 คำถาม - ความแตกต่างระหว่าง isConnected และ isInternetReachable ใน NetInfo คืออะไร? - ควรใช้กลยุทธ์การซิงโครไนซ์แบบใดสำหรับแอปจดบันทึกแบบ offline-first? สมัครฟรี: https://sharpskill.dev/th/login ## หัวข้อสัมภาษณ์ React Native อื่นๆ - [พื้นฐาน JavaScript](https://sharpskill.dev/th/technologies/react-native/interview-questions/javascript-essentials.md): 25 คำถาม, Junior - [พื้นฐาน React](https://sharpskill.dev/th/technologies/react-native/interview-questions/react-fundamentals.md): 20 คำถาม, Junior - [พื้นฐาน React Native](https://sharpskill.dev/th/technologies/react-native/interview-questions/react-native-basics.md): 22 คำถาม, Junior - [React Hooks](https://sharpskill.dev/th/technologies/react-native/interview-questions/react-hooks.md): 20 คำถาม, Junior - [TypeScript สำหรับ React และ React Native](https://sharpskill.dev/th/technologies/react-native/interview-questions/typescript-for-react-native.md): 22 คำถาม, Junior - [คอมโพเนนต์และ API ของ React Native](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-components-api.md): 20 คำถาม, Junior - [การจัดสไตล์และเลย์เอาต์ใน React Native](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-styling-layout.md): 18 คำถาม, Junior - [การนำทางใน React Native](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-navigation.md): 22 คำถาม, Mid-Level - [การจัดการ State ใน React Native](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-state-management.md): 24 คำถาม, Mid-Level - [Networking และ API ใน React Native](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-networking-api.md): 20 คำถาม, Mid-Level - [การคงอยู่ของข้อมูล](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-data-persistence.md): 20 คำถาม, Mid-Level - [ฟอร์มและการตรวจสอบความถูกต้อง](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-forms-validation.md): 18 คำถาม, Mid-Level - [แอนิเมชัน React Native](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-animations.md): 22 คำถาม, Mid-Level - [Native Modules & Bridge](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-native-modules.md): 20 คำถาม, Mid-Level - [โค้ดเฉพาะแพลตฟอร์ม](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-platform-specific-code.md): 18 คำถาม, Mid-Level - [สิทธิ์และ Device API](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-permissions-apis.md): 20 คำถาม, Mid-Level - [Push Notifications](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-push-notifications.md): 18 คำถาม, Mid-Level - [การทดสอบ React Native](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-testing.md): 20 คำถาม, Mid-Level - [การ Debug React Native](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-debugging.md): 18 คำถาม, Mid-Level - [Build & Deployment](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-build-deployment.md): 20 คำถาม, Mid-Level - [Expo vs React Native Bare](https://sharpskill.dev/th/technologies/react-native/interview-questions/expo-vs-bare-rn.md): 18 คำถาม, Mid-Level - [การเพิ่มประสิทธิภาพ](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-performance-optimization.md): 24 คำถาม, Senior - [การจัดการหน่วยความจำ](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-memory-management.md): 20 คำถาม, Senior - [Architecture Patterns](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-architecture-patterns.md): 22 คำถาม, Senior - [React Native New Architecture](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-new-architecture.md): 24 คำถาม, Senior - [แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-security-best-practices.md): 20 คำถาม, Senior - [CI/CD React Native](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-ci-cd.md): 20 คำถาม, Senior - [Monorepo และการแชร์โค้ด](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-monorepo-architecture.md): 18 คำถาม, Senior - [หัวข้อขั้นสูง](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-advanced-topics.md): 22 คำถาม, Senior - [วงจรชีวิตแอปและการทำงานเบื้องหลัง](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-app-lifecycle-background.md): 20 คำถาม, Mid-Level - [การยืนยันตัวตนและการจัดการเซสชัน](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-auth-session-management.md): 22 คำถาม, Mid-Level - [Monitoring & Crash Reporting](https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-monitoring-crash-reporting.md): 20 คำถาม, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/th/technologies/react-native/interview-questions/rn-offline-first