รู้จักกับ React Hook และ Component

/ 2 min read

Share on social media

react-start สามารถดู video ของหัวข้อนี้ก่อนได้ ดู video

React คืออะไร

Ref: https://react.dev/ React คือ library สำหรับ web และ native user interfaces ที่ใช้สำหรับการพัฒนา web application ฝั่ง Frontend

  • มอง web app ทั้งหมดเป็น component based
  • ใช้ภาษา JSX เป็น based ในการจัดการ style และ component (เพิ่มความสามารถของ javascript ให้จัดการฝั่ง html ไปร่วมกันได้) = จริงๆแล้วมันคือ based javascript
  • แถม support ทุก platform ด้วย
  • ใครที่รู้จัก Vue มา มีสถานะที่คล้ายๆกัน คือเป็น library Frontend เหมือนกัน แต่ไอเดียการพัฒนาจะเป็นไปในคนละแบบกัน

Start project React

Ref: https://react.dev/learn/start-a-new-react-project

  • จริงๆเราสามารถลงเพียงแค่ library React แล้วสามารถเริ่ม development ได้เลย
  • แม้แต่ React เองก็แนะนำใช้ Next เลยสำหรับการทำงาน

แต่ทีนี้ เพื่อให้เข้าใจพื้นฐานของ React เราจะมาเริ่มเล่นจาก Vite กันก่อน จาก https://vitejs.dev/guide/

Start tutorial

เนื่องจากผมไปเจอว่า Document ของ https://react.dev/learn มันดีอยู่แล้ว ผมจะ follow หัวข้อตามนี้ โดยปรับโจทย์ของเราเป็น Todo list ออกมาแทน

โดยเนื้อหาลองไมค์สำหรับ React เราจะแบ่งออกเป็น 2 ตอนใหญ่ๆ

  1. (ตอนนี้) สำหรับปูพื้นฐาน React
  2. สำหรับลุยต่อกับ Next.js

เพื่อให้ตอนที่เราทำ Next.js จะได้ไม่สับสนกับพื้นฐานของ Component, Condition, State ของ React ด้วย

หัวข้อที่เราจะเรียนรู้กัน เราจะเรียนรู้ผ่าน 4 หัวข้อใหญ่ๆคือ

  1. React Component / Props
  2. Condition / Loop
  3. React Hook สำหรับจัดการ state
  4. React router (React router DOM)

ซึ่งผมมองว่า เนื้อหา 4 เรื่องนี้เป็นเนื้อหาที่ครอบคลุม เนื้อหาเกือบทั้งหมดโดยประมาณของ React และ

  • พวกที่เป็น practice การพัฒนาว่าควรวาง project ยังไง เราจะไปคุยกันที่ Next.js อีกที

React Component / Props

Condition / Loop

React Hook (จัดการ state)

Ref:

React Hook คือ built-in API function ของ React ที่ทำให้สามารถจัดการ State โดยใช้ไอเดียของการ “Hook” React state และมาจัดการผ่าน Lifecycle ของ Hook แทน

  • เป็น feature ที่เพิ่มมาหลัง React 16.8

  • จุดประสงค์ของการเพิ่มเพื่อลดความยุ่งยากในการใช้การเขียน Component ที่ต้องผูกติดกับ class ของ React = ทำให้ React ไม่จำเป็นต้องมี state อย่าง lifecycle แต่จัดการ lifecycle ผ่าน Hook แทน

  • ลองใช้ useState

  • ใช้ useRef (เก็บข้อมูลด้านหลัง)

  • ใช้ useEffect​ (Connect API)

  • ใช้ useReducer (จัดการ state ที่ complex มากขึ้น)

React router dom

Ref: https://reactrouter.com/en/main/start/tutorial

** แต่จริงๆ ตัวนี้ถ้าใครใช้ next ก็จะจัดการ router ผ่าน app router ของ next แทน แต่เผื่อสำหรับใครที่จะใช้ React พัฒนาล้วนๆ

  • จัดการ URL ผ่าน params (useParams)

Related Post
  • Redux และ React
    มี Video มี Github
    รู้จักกับ Redux state management ที่ช่วยทำให้ application จัดการ state ได้สะดวกสบายยิ่งขึ้นกัน
  • มารู้จัก Svelte และ SvelteKit กัน
    มี Video มี Github
    สำรวจโลกแห่งการพัฒนาเว็บไซต์สมัยใหม่ด้วยการแนะนำ Svelte และ SvelteKit ที่ครอบคลุมของเรา
  • LLM Local and API
    มี Video
    แนะนำพื้นฐาน LLM การใช้งานบน Local ด้วย LM Studio และ Ollama พร้อมตัวอย่างการสร้าง API ด้วย FastAPI และการใช้งานร่วมกับ Continue AI
  • สรุปเนื้อหา Exploring the Power of Gemini (I/O Extend 24)
    มี Github มี Slide
    สรุปเนื้อหา use case Gemini ทั้ง 3 ประเภท Chat, API และ RAG คืออะไรและมี use case ประมาณไหนบ้าง

Share on social media