เรื่องจริงที่คุณอาจไม่รู้ เกี่ยวกับ React

เรื่องเด่น, บทความ

พูดถึงชื่อเฟรมเวิร์คชื่อดังอย่าง React ถ้าเป็นคนในวงการ web หรือ mobile development 9 ใน 10 น่าจะต้องเคยได้ยินผ่านหูมาบ้างอย่างแน่นอน บทความนี้เราจะพูดถึงความจริง (fact) ที่คุณอาจไม่เคยรู้เกี่ยวกับ React แต่ถ้าคุณไม่รู้จัก React นี่คือความจริงที่คุณต้องรู้ 😲

React คือแรงบันดาลใจ

ย้อนกลับไปในยุคที่ Javascript ถูกใช้เป็นแค่เครื่องมือในการสร้าง gimmick ให้กับเว็บไซต์ อย่างการทำตัวอักษรวิ่ง หรือเอฟเฟกวิ่งตามเคอร์เซอร์ วันหนึ่งก็เริ่มมีกลุ่มคนที่เห็นว่า Javascript สามารถทำอะไรได้มากกว่านั้น จนก่อให้เกิดไลบรารีอย่าง jQuery ต่อมาก็เป็น AngularJS ทำให้เราสามารถทำเว็บที่ตอบโจทย์การใช้งานในรูปแบบใหม่ๆ มีลูกเล่นที่น่าสนใจ และทั้งสองก็ยังคงเป็นตำนานมาจนถึงทุกวันนี้

AngularJS

เมื่อเข้าสู่ยุคที่สอง ยุคที่ Javascript กลายเป็นแกนหลักในการพัฒนาเว็บแทนที่ HTML และ CSS ในยุคนี้มีไลบรารีและเฟรมเวิร์คของ Javascript เกิดขึ้นมากมาย แต่ถ้าจะถามว่าใครคือผู้อยู่รอดหลังจากสงครามไลบรารีในครั้งนั้น ก็คงจะมีแค่ Angular2 ของ Google ที่พัฒนามาจาก AngularJS และ React ที่พัฒนาโดย Facebook เท่านั้น

Angular เลือก Typescript ส่วน React เลือก ES6 เป็นภาษาในการพัฒนา ทั้งสองภาษาจะต้องถูกคอมไพล์เป็น ES5 ก่อน จึงจะสามารถทำงานบนเว็บเบราเซอร์ได้

เพื่อนๆ ที่คลุกคลีอยู่ในวงการพัฒนาเว็บอ่านย่อหน้าข้างบนแล้วคงเถียงทันที “ลืม Vue ไปหรือเปล่า” ไม่ได้ลืมครับ 😅 แต่เพราะ Vue ถือกำเนิดขึ้นหลังจากนั้น โดยอาศัยคอนเซปท์ส่วนหนึ่งของ React เช่น Virtual DOM, ฟังก์ชั่น render, การรองรับภาษา JSX เป็นต้น

นอกจาก React จะเป็นแรงบันดาลใจให้กับไลบรารีคู่แข่งอย่าง Vue แล้ว เฟรมเวิร์คมาแรงแห่งยุคอย่าง Flutter ก็บอกตรงๆ เลยว่าตัวเองก็ได้รับแรงบันดาลใจมาจาก React เช่นกัน 😳

ข้อมูลจากเว็บไซต์ flutter.dev

นอกจากนี้ก็ยังมีไลบรารีที่ต่อยอดจาก React ไปอีกทีอย่าง Preact, Gatsby, Next บอกเลยว่าคอนเซปท์ของ React นั้นดีจริงๆ ไม่อย่างนั้นคงไม่ถูกนำมาเป็นแรงบันดาลใจให้กับไลบรารีตัวอื่นใช่ไหมหละครับ 👏

จักรวาลของ React

React วางตัวเองเป็น ไลบรารีในการจัดการ UI ดังนั้นแพลตฟอร์มใดๆ ที่มี UI (สิ่งที่ผู้ใช้เห็นและสามารถโต้ตอบกับมันได้) ก็สามารถใช้ React ช่วยในการจัดการ UI ได้

ในการพัฒนาเว็บ เราต้องใช้ไลบรารี 2 ตัว คือ React และ ReactDOM เพราะโดยเนื้อแท้แล้ว React ไม่ได้ผูกมัดตัวเองกับ UI ในแพลตฟอร์มใดๆ

แล้วนอกเหนือจากการพัฒนาเว็บแล้ว React ถูกนำไปใช้พัฒนาแอปพลิเคชันในแพลตฟอร์มอื่นอีก

  • React Native – สำหรับแพลตฟอร์ม mobile ในปัจจุบันคือ iOS และ Android
  • React 360 – สำหรับพัฒนาคอนเทนต์ VR อย่างที่เราเห็นในเว็บไซต์และแอปพลิเคชัน Facebook
  • React Native for Web – เมื่อนักพัฒนาแอปพลิเคชันมือถือ อยากเขียนครั้งเดียว แล้ว export ลงมือถือก็ได้ เว็บก็ได้ ความย้อนแย้งจึงบังเกิด เพื่อนๆ ลองหาข้อมูลเพิ่มเติม ที่นี่ นะครับ 😙 ไม่รู้จะอธิบายยังไงดี

ถ้าอนาคตมีแพลตฟอร์มใหม่ๆ เกิดขึ้นอีก ก็เชื่อได้เลยว่า เราจะได้เห็น React เข้าไปเป็นไลบรารีในการจัดการ UI ให้กับแพลตฟอร์มนั้นแน่นอนครับ

อดีต ปัจจุบัน และอนาคต

React ถือเป็นไลบรารีที่เติบโตและมีพัฒนาการรวดเร็วมาก หากใครใช้ React มาเกิน 1 ปี จะเข้าใจว่าสิ่งที่เปลี่ยนแปลงไปมีอะไรบ้าง ยกตัวอย่างเช่น การเปลี่ยนจากการเขียน component แบบ class มาเป็นแบบ function+hooks, การรองรับการใช้ context และ reducer เป็นต้น

ถึงแม้ React จะออกฟีเจอร์ใหม่ๆ อยู่ตลอด แต่ไม่ค่อยมี breaking changes (การเปลี่ยนแปลงที่ทำให้เวอร์ชั่นก่อนหน้าใช้งานไม่ได้) เมื่อเทียบกับไลบรารีตัวอื่น

อนาคตของ React นั้นสดใสมาก เราจะได้เห็นฟีเจอร์ใหม่ๆ อย่าง Suspense ใน React หรือ Fast Refresh ใน React Native ค่อยๆ ถูกปล่อยออกมาให้ใช้งานมากขึ้น

มาถึงตรงนี้ เพื่อนๆ คงเห็นแล้วนะครับ React ไม่ได้เป็นแค่ไลบรารีสำหรับทำเว็บเพียงอย่างเดียว ตัวมันทำอะไรได้มากกว่านั้น และเครื่องมือที่เป็นที่นิยมหลายตัว ก็อาศัยแนวคิดของ React ไปต่อยอดให้แนวทางของตนเองครับ

ถ้าอยากลองดูว่าเว็บไซต์ที่ใช้ React มีประสิทธิภาพเป็นอย่างไร โหลดเร็วแค่ไหน ลองเข้าชมเว็บไซต์ Bkkhive.com ซึ่งโปรเกมมิ่งพัฒนาให้กับ กองควบคุมโรคเอดส์ วัณโรค และโรคติดต่อทางเพศสัมพันธ์ กันดูนะครับ เป็นหนึ่งในอีกหลายๆ โปรเจคที่เราใช้ React ทำครับ 👩‍💻

เราจะใช้ React หรือไม่ก็ไม่เป็นไร แต่เราควรจะเข้าใจการทำงานของมัน เพราะนอกจากจะเป็นประโยชน์ทั้งในทางตรงและทางอ้อมแล้ว React น่าจะยืนหนึ่งในวงการไปอีกนานครับ เพื่อนๆ มีคำถามหรือมีความเห็นอย่างไรก็ทิ้งข้อความไว้ในคอมเมนต์ได้นะครับ 🤗

, , , ,

บทความที่เกี่ยวข้อง

Menu