จาก tweet ของ Dan Abramov ผู้สร้าง React นั่นเอง
เกี่ยวกับแนวคิดการออกแบบ component เป็น Presentational และ Container component
หรือเรื่องของ Stateful และ Stateless component
ได้บอกว่า แนวคิดนี้น่าจะไม่เหมาะสมแล้วกับ React ใหม่ที่มี React Hooks ออกมา
นั่นหมายความว่าเราสามารถแยก logic การทำงานออกไปยัง React Hooks เลย

เลยเกิดคำถามว่า ต้องใช้ Hook กันเลยไหม ?
หรือต้อง migrate มา Hook เลยไหม ?

ก็เลยไปลองอ่าน Blog ของ React พบบทความ React 16.8 : The one with Hooks

แน่นอนว่าอธิบายได้ชัดเจนมาก ๆ ทั้ง React Hooks คืออะไร

  • Hooks สามารถใช้งาน state และ feature ต่าง ๆ ของ React ได้โดยไม่ต้องสร้าง class ขึ้นมา
  • สามารถสร้าง Hooks ขึ้นมาเองเพื่อ share/reuse stateful logic ระหว่าง component
  • ดังนั้นไม่ต้องมาแยก Stateful และ Stateless component อีกแล้ว 

ในเอกสารบอกว่า ยังไม่ต้องเรียนรู้ Hooks ตอนนี้ก็ได้
เพราะว่ายังไม่มีแผนเอา class ต่าง ๆ
ออกจาก React ดังนั้นสบายใจกันได้

แถมยังไม่แนะนำให้ Rewrite ระบบงานเดิมด้วย Hooks อีกด้วย
แต่แนะนำให้ใช้กับ component ใหม่ ๆ ดีกว่า

คำถามที่น่าสนใจคือ จะเริ่มใช้ Hooks ตั้งแต่ตอนนี้เลยไหม ?

ตอบเลยว่าใช่ ได้เลย
แต่ใช้กับ React 16.8 ขึ้นไปเท่านั้น
แน่นอนว่า Hooks เข้าสู่ stable version แล้ว
สามารถใช้งาน Hooks กับสิ่งต่าง ๆ เหล่านี้ได้เลย

  • React DOM
  • React DOM Server
  • React Test Renderer
  • React Shallow Renderer

ปล. ตอนนี้ Hooks ยังไม่ครอบคลุมครบทุกกรณี แต่ก็ใกล้แล้วต้องรอกันหน่อย
หรือดูเพิ่มเติมได้ใน Hooks FAQ

มาเริ่มเรียนรู้ Hook ใน React 16.8 กัน 

$yarn add react@^16.8.0 react-dom@^16.8.0

ขอให้สนุกกับการ coding กันครับ