การตั้งค่ารีแอ็กต์ร่วมกับอิเล็กตรอน
กำหนดค่าอิเล็กตรอนร่วมกับไวต์และรีแอ็กต์ ตั้งค่า contextBridge สำหรับ IPC ที่ปลอดภัย และเรียกใช้ในโหมดพัฒนา
การตั้งค่ารีแอ็กต์ร่วมกับอิเล็กตรอน เป็นบทเรียน React Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน React Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส React Academy มีบทเรียนทั้งหมด 4 บทเรียน
ภาพรวมการตั้งค่าโครงการ
การตั้งค่า React ร่วมกับ Electron เริ่มจากสร้างโครงการ React ด้วย Vite จากนั้นเพิ่ม electron และ electron-builder เป็น devDependencies สุดท้ายโครงการจะมีจุดเริ่มต้นสองจุด ได้แก่ แอป Vite สำหรับกระบวนการเรนเดอร์ และไฟล์ main.js สำหรับกระบวนการหลักของ Electron
ไฟล์ main.js
main.js คือจุดเริ่มต้นของ Electron โดยจะสร้าง BrowserWindow พร้อมขนาดหน้าต่างและการตั้งค่าความปลอดภัยตามต้องการ จากนั้นโหลดแอป React โดยชี้ไปยัง localhost:5173 ระหว่างการพัฒนา และชี้ไปยังเส้นทางไฟล์ที่สร้างแล้วเมื่อใช้งานจริง
electron-vite: ชุดเครื่องมือที่แนะนำ
electron-vite คือเครื่องมือสร้างแบบครบวงจรที่ผสาน Vite เข้ากับ Electron และจัดการการตั้งค่าการสร้างสำหรับหลายกระบวนการที่ซับซ้อนให้โดยอัตโนมัติ เครื่องมือนี้มีการตั้งค่า Vite แยกสำหรับกระบวนการหลัก กระบวนการ preload และกระบวนการเรนเดอร์ จึงช่วยให้การสร้างทั้งระหว่างการพัฒนาและการใช้งานจริงง่ายขึ้นอย่างมาก
การตั้งค่า vite.config.js
เมื่อตั้งค่า Vite สำหรับ Electron คุณต้องกำหนดเป้าหมายเบราว์เซอร์อย่างชัดเจนแทนการพึ่งพาการตรวจหาอัตโนมัติ เพราะกระบวนการเรนเดอร์ทำงานบน Chromium เวอร์ชันเฉพาะที่รวมอยู่ใน Electron electron-vite จัดการเรื่องนี้ให้โดยอัตโนมัติ แต่การตั้งค่าด้วยตนเองต้องระบุเวอร์ชัน chrome ในเป้าหมายการสร้าง
ขั้นตอนการทำงานระหว่างการพัฒนา
การเรียกใช้ electron-vite dev จะเริ่มทั้งเซิร์ฟเวอร์พัฒนาของ Vite สำหรับกระบวนการเรนเดอร์และกระบวนการหลักของ Electron พร้อมกัน เซิร์ฟเวอร์พัฒนาของ Vite มีการแทนที่โมดูลขณะทำงาน จึงทำให้การเปลี่ยนแปลงคอมโพเนนต์ React ปรากฏในหน้าต่าง Electron ได้ทันทีโดยไม่ต้องเริ่มใหม่ทั้งหมด
การแทนที่โมดูลขณะทำงานใน Electron
HMR ทำงานในกระบวนการเรนเดอร์ของ Electron เช่นเดียวกับในเบราว์เซอร์ คอมโพเนนต์ที่แก้ไขจะเรนเดอร์ใหม่ทันทีโดยยังคงสถานะเดิมไว้ การเปลี่ยนแปลงเฉพาะ main.js หรือสคริปต์ preload เท่านั้นที่ต้องเริ่ม Electron ใหม่ทั้งหมด เนื่องจากส่วนเหล่านี้ทำงานอยู่นอกขอบเขต HMR ของ Vite
การตั้งค่า TypeScript
โครงการ Electron + React + TypeScript ต้องมีไฟล์ tsconfig แยกสำหรับกระบวนการหลัก (กำหนดเป้าหมายเป็น Node.js/CommonJS) กระบวนการ preload (กำหนดเป้าหมายเป็นสภาพแวดล้อมคล้ายเบราว์เซอร์ที่มีตัวแปรส่วนกลางของ Node) และกระบวนการเรนเดอร์ (TypeScript สำหรับเบราว์เซอร์มาตรฐาน) electron-vite จะสร้างการตั้งค่าเหล่านี้ให้โดยอัตโนมัติ
การตั้งค่า contextBridge
สคริปต์ preload ใช้ contextBridge.exposeInMainWorld เพื่อเปิดเผย API ที่กำหนดเองให้กระบวนการเรนเดอร์ รูปแบบทั่วไปคือการเปิดเผยเนมสเปซอย่าง "api" พร้อมฟังก์ชันที่ครอบการเรียกใช้ ipcRenderer.invoke เพื่อให้คอมโพเนนต์ React มีส่วนติดต่อแบบอะซิงโครนัสที่สะอาดสำหรับการดำเนินการในกระบวนการหลัก
การเข้าถึง API ที่เปิดเผยจาก React
จากคอมโพเนนต์ React ใด ๆ คุณสามารถเรียก window.api.myFunction() เพื่อเรียกใช้ API ของ preload ที่เปิดเผยไว้ ผู้ใช้ TypeScript มักเพิ่มการประกาศส่วนกลาง (window: Window & { api: MyAPI }) เพื่อให้ได้รับการตรวจสอบชนิดข้อมูลและการเติมข้อความอัตโนมัติสำหรับส่วนติดต่อที่เปิดเผย
การสร้างสำหรับการใช้งานจริง
electron-vite build จะคอมไพล์เป้าหมายทั้งสามส่วน (กระบวนการหลัก กระบวนการ preload และกระบวนการเรนเดอร์) ลงในโฟลเดอร์ dist/ จากนั้น electron-builder จะบรรจุทั้งหมดเป็นตัวติดตั้งเฉพาะแพลตฟอร์ม main.js สำหรับการใช้งานจริงจะโหลดกระบวนการเรนเดอร์จากเส้นทางไฟล์ที่รวมไว้ แทน URL ของเซิร์ฟเวอร์พัฒนา
ข้อผิดพลาดที่พบบ่อยในการตั้งค่า
ข้อผิดพลาดในการตั้งค่าที่พบบ่อยที่สุด ได้แก่ ลืมกำหนด nodeIntegration:false และ contextIsolation:true (ทำให้เกิดช่องโหว่ด้านความปลอดภัย) โหลด URL ผิดใน main.js (ระหว่างการพัฒนากับการใช้งานจริง) และนำเข้าโมดูล Electron โดยตรงในกระบวนการเรนเดอร์ (ทำให้แอปขัดข้อง) ค่าเริ่มต้นของ electron-vite ช่วยป้องกันปัญหาเหล่านี้ได้เกือบทั้งหมด
คำสั่งพัฒนาของ electron-vite
การเรียกใช้ electron-vite dev ทำอะไร
ทบทวนบทเรียน
การตั้งค่า React ร่วมกับ Electron ทำได้ง่ายขึ้นด้วย electron-vite ซึ่งจัดการความซับซ้อนของการสร้างสำหรับหลายกระบวนการให้ ขั้นตอนการทำงานระหว่างการพัฒนารองรับ HMR อย่างเต็มรูปแบบ contextBridge ช่วยรักษาความปลอดภัยให้พื้นผิว API ของกระบวนการเรนเดอร์ และการตั้งค่า TypeScript ที่แยกกันช่วยให้แต่ละกระบวนการมีสภาพแวดล้อมชนิดข้อมูลที่ถูกต้อง การสร้างสำหรับการใช้งานจริงใช้ electron-builder เพื่อบรรจุแอปให้เหมาะกับแต่ละแพลตฟอร์ม
คำถามที่พบบ่อย
บทเรียน “การตั้งค่ารีแอ็กต์ร่วมกับอิเล็กตรอน” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การตั้งค่ารีแอ็กต์ร่วมกับอิเล็กตรอน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส React Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส React Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การตั้งค่ารีแอ็กต์ร่วมกับอิเล็กตรอน”
กำหนดค่าอิเล็กตรอนร่วมกับไวต์และรีแอ็กต์ ตั้งค่า contextBridge สำหรับ IPC ที่ปลอดภัย และเรียกใช้ในโหมดพัฒนา คุณปฏิบัติ React Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน React Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน React Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การตั้งค่ารีแอ็กต์ร่วมกับอิเล็กตรอน” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน React Academy นี้ได้ไหม
ได้ บทเรียน React Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- สถาปัตยกรรมอิเล็กตรอน: กระบวนการหลักและกระบวนการแสดงผล
- การตั้งค่ารีแอ็กต์ร่วมกับอิเล็กตรอน
- การสื่อสาร IPC ระหว่างกระบวนการ
- การจัดแพ็กเกจและเผยแพร่สำหรับแพลตฟอร์มเดสก์ท็อป