0Pricing
React Academy · บทเรียน

การตั้งค่ารีแอ็กต์ร่วมกับอิเล็กตรอน

กำหนดค่าอิเล็กตรอนร่วมกับไวต์และรีแอ็กต์ ตั้งค่า 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. สถาปัตยกรรมอิเล็กตรอน: กระบวนการหลักและกระบวนการแสดงผล
  2. การตั้งค่ารีแอ็กต์ร่วมกับอิเล็กตรอน
  3. การสื่อสาร IPC ระหว่างกระบวนการ
  4. การจัดแพ็กเกจและเผยแพร่สำหรับแพลตฟอร์มเดสก์ท็อป
← กลับไปที่ React Academy