แสดงบทความที่มีป้ายกำกับ ReactJS แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ ReactJS แสดงบทความทั้งหมด

วันอาทิตย์ที่ 16 กุมภาพันธ์ พ.ศ. 2568

ติดตั้ง Next.js และเริ่มโปรเจกต์แรกแบบง่าย ๆ

    Next.js คือเฟรมเวิร์กที่พัฒนาขึ้นจาก React.js ซึ่งได้รับความนิยมอย่างมากในช่วงหลัง เพราะมันช่วยให้การพัฒนาเว็บแอปพลิเคชันที่ต้องการฟีเจอร์ขั้นสูง เช่น การเรนเดอร์ฝั่งเซิร์ฟเวอร์ (SSR), Static Site Generation (SSG), และการจัดการ SEO ทำได้ง่ายขึ้น แต่หากคุณเพิ่งเริ่มต้นกับ Next.js อาจจะรู้สึกงง ๆ ว่าต้องทำอะไรบ้างเพื่อเริ่มต้นโปรเจกต์แรกของคุณ

    วันนี้เราจะมาพูดถึงขั้นตอนการติดตั้ง Next.js และเริ่มโปรเจกต์แรกแบบไม่ยาก เพื่อให้คุณสามารถเริ่มใช้งานได้ทันที! มาดูกันว่าเราต้องทำอะไรบ้าง

ขั้นตอนที่ 1: ติดตั้ง Node.js และ npm

    ก่อนที่เราจะเริ่มโปรเจกต์ใน Next.js ได้ เราต้องติดตั้ง Node.js และ npm (Node Package Manager) ให้เรียบร้อยก่อน ถ้าคุณยังไม่ได้ติดตั้ง Node.js หรือไม่แน่ใจว่ามีแล้วหรือยัง สามารถตรวจสอบได้โดยการเปิด Terminal หรือ Command Prompt แล้วพิมพ์คำสั่งเหล่านี้:

node -v

และ

npm -v

หากมีการแสดงเวอร์ชันออกมาแสดงว่าคุณได้ติดตั้ง Node.js และ npm แล้ว แต่หากยังไม่มีก็สามารถดาวน์โหลด Node.js ได้ที่ https://nodejs.org เลือกเวอร์ชันที่แนะนำ (LTS) และติดตั้งตามขั้นตอน

เมื่อเสร็จแล้วลองตรวจสอบอีกครั้งว่ามีการติดตั้งสำเร็จแล้วหรือยัง

ขั้นตอนที่ 2: สร้างโปรเจกต์ใหม่ด้วย Next.js

เมื่อคุณติดตั้ง Node.js และ npm เรียบร้อยแล้ว ขั้นตอนต่อไปคือการสร้างโปรเจกต์ใหม่ด้วย Next.js ซึ่งเราสามารถใช้คำสั่ง create-next-app ในการสร้างโปรเจกต์ได้อย่างง่ายดาย

  1.     เปิด Terminal หรือ Command Prompt
  2.     ใช้คำสั่งนี้เพื่อสร้างโปรเจกต์ใหม่

npx create-next-app@latest ชื่อโปรเจกต์ของคุณ

ตัวอย่างเช่น หากคุณอยากตั้งชื่อโปรเจกต์ว่า my-first-next-project ก็พิมพ์คำสั่งนี้:

npx create-next-app@latest my-first-next-project

คำสั่งนี้จะดาวน์โหลดเทมเพลตพื้นฐานของ Next.js และติดตั้ง dependencies ที่จำเป็นทั้งหมดให้คุณ โดยไม่ต้องตั้งค่ามือเอง

ขั้นตอนที่ 3: เข้าไปในโฟลเดอร์โปรเจกต์

เมื่อการสร้างโปรเจกต์เสร็จสมบูรณ์ ให้เข้าไปในโฟลเดอร์ของโปรเจกต์ที่เพิ่งสร้างขึ้น โดยใช้คำสั่ง:

cd my-first-next-project

ขั้นตอนที่ 4: รันโปรเจกต์แรก

หลังจากที่คุณเข้าไปในโฟลเดอร์โปรเจกต์แล้ว คุณสามารถเริ่มรันโปรเจกต์ของคุณได้ทันที โดยใช้คำสั่งนี้:

npm run dev

คำสั่งนี้จะเริ่มเซิร์ฟเวอร์ในโหมดพัฒนา (development mode) และโปรเจกต์ของคุณจะรันที่ http://localhost:3000 ถ้าทุกอย่างทำงานถูกต้อง คุณสามารถเปิดเบราว์เซอร์แล้วพิมพ์ URL นี้เพื่อดูหน้าเว็บแรกของคุณ

ขั้นตอนที่ 5: ทำความเข้าใจโครงสร้างโปรเจกต์

เมื่อคุณสร้างโปรเจกต์ Next.js ใหม่แล้ว คุณจะเห็นโครงสร้างของโฟลเดอร์ที่ค่อนข้างง่ายและเข้าใจได้ไม่ยาก ลองมาดูกันว่าในโปรเจกต์ที่สร้างขึ้นมาจะมีโฟลเดอร์และไฟล์อะไรบ้าง:

  • pages/: โฟลเดอร์นี้จะเก็บไฟล์ที่เป็นหน้าเว็บ (pages) ของโปรเจกต์ เช่น index.js คือหน้าแรกของเว็บไซต์
  • public/: โฟลเดอร์นี้จะเก็บไฟล์ที่เป็นสาธารณะ เช่น รูปภาพ ไฟล์ .txt หรือไฟล์อื่น ๆ ที่สามารถเข้าถึงได้จาก URL
  • styles/: โฟลเดอร์นี้จะเก็บไฟล์ CSS สำหรับตกแต่งหน้าเว็บ
  • node_modules/: โฟลเดอร์ที่ npm สร้างขึ้นเพื่อเก็บ dependencies ที่จำเป็นสำหรับโปรเจกต์
  • package.json: ไฟล์นี้จะเก็บข้อมูลเกี่ยวกับโปรเจกต์ เช่น dependencies, scripts, และ metadata อื่น ๆ

ในโฟลเดอร์ pages คุณจะเห็นไฟล์ index.js ซึ่งเป็นหน้าแรกของเว็บไซต์ คุณสามารถแก้ไขไฟล์นี้เพื่อเปลี่ยนแปลงเนื้อหาของหน้าแรกได้ทันที

ขั้นตอนที่ 6: แก้ไขหน้าแรกของคุณ

ลองเปิดไฟล์ pages/index.js และเปลี่ยนเนื้อหาภายในไฟล์นี้สักหน่อยเพื่อทดสอบการทำงานของ Next.js ตัวอย่างเช่น:

function HomePage() {
  return (
    <div>
      <h1>ยินดีต้อนรับสู่โปรเจกต์แรกของคุณใน Next.js!</h1>
      <p>นี่คือหน้าแรกของเว็บไซต์ที่คุณสร้างขึ้นมา</p>
    </div>
  );
}

export default HomePage;

จากนั้นบันทึกไฟล์และไปที่เบราว์เซอร์เพื่อรีเฟรชหน้า http://localhost:3000 คุณจะเห็นการเปลี่ยนแปลงที่คุณทำทันที

ขั้นตอนที่ 7: การเพิ่มหน้าใหม่

หนึ่งในคุณสมบัติที่ยอดเยี่ยมของ Next.js คือระบบ Routing ที่อัตโนมัติ เพียงแค่คุณสร้างไฟล์ใหม่ในโฟลเดอร์ pages หน้าใหม่ก็จะถูกสร้างขึ้นโดยอัตโนมัติ ลองสร้างไฟล์ใหม่ชื่อ about.js ในโฟลเดอร์ pages และใส่โค้ดนี้:

function AboutPage() {
  return (
    <div>
      <h1>เกี่ยวกับเรา</h1>
      <p>นี่คือหน้าที่เกี่ยวกับเว็บไซต์ของเรา</p>
    </div>
  );
}

export default AboutPage;

ตอนนี้คุณสามารถไปที่ http://localhost:3000/about เพื่อดูหน้า "เกี่ยวกับเรา" ที่คุณเพิ่งสร้างขึ้นได้เลย

ขั้นตอนที่ 8: การใช้งาน Link ใน Next.js

Next.js มีคอมโพเนนต์ที่เรียกว่า Link ซึ่งช่วยให้การทำ routing ภายในเว็บไซต์ง่ายขึ้นโดยไม่ต้องโหลดหน้าใหม่ทั้งหมด ลองใช้ Link เพื่อเพิ่มลิงก์ไปยังหน้า "เกี่ยวกับเรา" ที่คุณสร้างขึ้น:

เปิดไฟล์ index.js แล้วเพิ่มโค้ดนี้:

import Link from 'next/link';

function HomePage() {
  return (
    <div>
      <h1>ยินดีต้อนรับสู่โปรเจกต์แรกของคุณใน Next.js!</h1>
      <p><Link href="/about">ไปยังหน้าที่เกี่ยวกับเรา</Link></p>
    </div>
  );
}

export default HomePage;

ตอนนี้เมื่อคุณไปที่หน้าแรก คุณจะเห็นลิงก์ที่สามารถคลิกเพื่อไปยังหน้า "เกี่ยวกับเรา" ได้ทันที

สรุป

การเริ่มต้นกับ Next.js นั้นไม่ยากเลย! เราเพียงแค่ต้องติดตั้ง Node.js, สร้างโปรเจกต์ใหม่ด้วยคำสั่ง create-next-app, รันโปรเจกต์, แล้วเริ่มแก้ไขหน้าเว็บและเพิ่มหน้าใหม่ตามต้องการ Next.js ทำให้การพัฒนาเว็บแอปพลิเคชันง่ายขึ้นและมีเครื่องมือที่ครบครันสำหรับการทำงานในระดับสูง

ลองสร้างโปรเจกต์และทดสอบฟีเจอร์ต่าง ๆ ที่ Next.js มีให้ดูนะครับ รับรองว่าคุณจะสนุกกับการสร้างเว็บแอปพลิเคชันใน Next.js มากขึ้น!

วันเสาร์ที่ 15 กุมภาพันธ์ พ.ศ. 2568

ข้อแตกต่างระหว่าง Next.js กับ React.js

    ในวงการพัฒนาเว็บวันนี้ คงไม่มีใครไม่รู้จัก React.js หรือ Next.js ที่ได้รับความนิยมอย่างมากจากนักพัฒนาเว็บทั่วโลก แต่หลายคนอาจจะยังไม่รู้ว่า React.js กับ Next.js นั้นมีข้อแตกต่างกันอย่างไร และควรเลือกใช้อะไรดี วันนี้เราจะมาพูดถึงข้อแตกต่างระหว่างสองตัวนี้แบบง่าย ๆ ครับ

React.js คืออะไร?

    ก่อนที่เราจะไปพูดถึงความแตกต่าง เรามาทำความเข้าใจกันก่อนว่า React.js คืออะไร React.js เป็น JavaScript library ที่ถูกพัฒนาโดย Facebook (หรือ Meta ในปัจจุบัน) เพื่อช่วยให้การพัฒนา UI (User Interface) ของแอปพลิเคชันเว็บง่ายขึ้น โดยมันใช้แนวคิดที่เรียกว่า "component-based architecture" หรือการออกแบบเป็นส่วน ๆ ทำให้เราสามารถสร้างส่วนต่าง ๆ ของ UI แล้วนำมาประกอบกันเป็นแอปพลิเคชันใหญ่ได้

    React.js ให้เราได้ทำงานกับ "component" ที่มีสถานะ (state) และคุณสมบัติ (props) ซึ่งทำให้การจัดการกับ UI และการแสดงผลข้อมูลจากแหล่งต่าง ๆ ทำได้ง่ายและสะดวก

Next.js คืออะไร?

    Next.js คือเว็บเฟรมเวิร์กที่ถูกสร้างขึ้นมาโดย Vercel ที่ใช้ React.js เป็นฐานหลัก แต่มันมีคุณสมบัติที่ทำให้การพัฒนาเว็บแอปพลิเคชันง่ายขึ้น และยืดหยุ่นมากขึ้น ไม่ว่าจะเป็นการจัดการกับ SEO (Search Engine Optimization) การเรนเดอร์ข้อมูลที่ฝั่งเซิร์ฟเวอร์ (Server-side Rendering หรือ SSR) หรือการทำ Static Site Generation (SSG) นอกจากนี้ Next.js ยังรองรับการพัฒนาแบบ full-stack ได้อีกด้วย

    Next.js เป็นเฟรมเวิร์กที่รวมหลาย ๆ ฟีเจอร์ที่จำเป็นในการสร้างเว็บแอปพลิเคชันในโลกยุคใหม่ ซึ่ง React.js เองไม่ได้มีฟีเจอร์เหล่านี้มาให้ในตัว

ความแตกต่างหลักระหว่าง React.js กับ Next.js

1. React.js เป็นไลบรารี ส่วน Next.js เป็นเฟรมเวิร์ก

    สิ่งแรกที่ต้องรู้คือ React.js เป็นไลบรารี (Library) ที่ช่วยในการสร้าง UI ในขณะที่ Next.js เป็นเฟรมเวิร์ก (Framework) ที่ให้โครงสร้างการพัฒนาแอปพลิเคชัน โดย Next.js ได้รวมฟีเจอร์มากมายที่ช่วยในการพัฒนาเว็บแอปพลิเคชันให้สะดวกและง่ายขึ้น ไม่ว่าจะเป็นการทำ SEO, การเรนเดอร์ฝั่งเซิร์ฟเวอร์, หรือการทำ Static Generation

2. Server-Side Rendering (SSR) และ Static Site Generation (SSG)

    หนึ่งในข้อดีที่ใหญ่ที่สุดของ Next.js คือการรองรับการเรนเดอร์ฝั่งเซิร์ฟเวอร์ (SSR) และการสร้างเว็บไซต์แบบ Static (SSG) ซึ่งช่วยให้เว็บไซต์โหลดเร็วและรองรับ SEO ได้ดีขึ้น

  •     SSR คือการที่เรานำข้อมูลมาจากเซิร์ฟเวอร์แล้วเรนเดอร์หน้าบนเซิร์ฟเวอร์ก่อนที่จะส่งไปให้ผู้ใช้ เมื่อเทียบกับ React.js ที่จะเรนเดอร์ส่วนใหญ่บนฝั่งไคลเอนต์ (Client-side rendering หรือ CSR)
  •     SSG คือการสร้างไฟล์ HTML ที่ได้จากข้อมูลที่เรากำหนดล่วงหน้าไว้แล้ว เช่น ข้อมูลของบทความในบล็อก ซึ่งจะถูกสร้างขึ้นตอนที่เรา build เว็บไซต์

    React.js เองไม่ได้มีฟีเจอร์พวกนี้มาให้ ต้องมีการตั้งค่าเพิ่มเติมเพื่อให้ทำงานในลักษณะนี้

3. Routing ใน Next.js

    ใน React.js การทำ routing หรือการสร้างเส้นทางไปยังหน้าอื่น ๆ ของเว็บไซต์จะต้องใช้ไลบรารีเสริม เช่น React Router เพื่อให้สามารถเปลี่ยนหน้าได้ แต่ใน Next.js นั้นมีระบบ routing มาให้พร้อมเลยโดยไม่ต้องติดตั้งอะไรเพิ่ม โดยการสร้างไฟล์ในโฟลเดอร์ pages ในโปรเจกต์จะทำให้ไฟล์นั้นกลายเป็นหน้าเว็บได้ทันที

    การทำ routing ใน React.js ต้องมีกระบวนการติดตั้งและตั้งค่ามากกว่า ขณะที่ Next.js สะดวกกว่าเยอะ

4. การทำงานกับ Data Fetching

    Next.js รองรับการดึงข้อมูลทั้งในฝั่งเซิร์ฟเวอร์และฝั่งไคลเอนต์ ซึ่งมีฟีเจอร์ที่ช่วยให้การดึงข้อมูลเป็นไปได้อย่างมีประสิทธิภาพ ตัวอย่างเช่น getStaticProps, getServerSideProps และ getInitialProps ที่จะช่วยให้สามารถดึงข้อมูลได้ตามประเภทการเรนเดอร์ที่ต้องการ

    ใน React.js การดึงข้อมูลจะทำได้ผ่านการใช้ useEffect หรือ componentDidMount และมักจะต้องมีการจัดการเองอย่างละเอียดกว่า

5. การจัดการ SEO

    ถ้าพูดถึง SEO บนเว็บแอปพลิเคชัน Next.js ทำได้ดีกว่า React.js เพราะการเรนเดอร์ฝั่งเซิร์ฟเวอร์ (SSR) ทำให้สามารถส่ง HTML ที่เต็มรูปแบบไปยังบอทของ Google ซึ่งช่วยให้เว็บไซต์ติดอันดับการค้นหาได้ดีกว่า ในขณะที่ React.js นั้นมักจะต้องมีการทำ SEO ด้วยมือหรือใช้เครื่องมือเสริม เช่น React Helmet

สรุป

    ในที่สุดแล้ว การเลือกใช้ React.js หรือ Next.js ขึ้นอยู่กับความต้องการและลักษณะของโปรเจกต์ หากคุณต้องการพัฒนาแค่ UI หรือ Single Page Application ที่ไม่ได้มีฟีเจอร์พิเศษมากมาย React.js ก็เพียงพอแล้ว แต่ถ้าคุณต้องการฟีเจอร์ที่มากกว่า เช่น การรองรับ SSR, SSG, SEO ที่ดีขึ้น และการทำ routing ที่สะดวก Next.js ก็เป็นตัวเลือกที่ดีที่สุด

    โดยสรุปแล้ว React.js เป็นไลบรารีที่ให้คุณสร้าง UI ได้ง่าย ๆ ส่วน Next.js เป็นเฟรมเวิร์กที่ให้โครงสร้างการพัฒนาเว็บที่ครบครันกว่า ทั้งการเรนเดอร์ข้อมูลบนเซิร์ฟเวอร์, การจัดการ routing, และการทำ SEO ที่เหนือกว่า

    หวังว่าบล็อกนี้จะช่วยให้คุณเห็นข้อแตกต่างระหว่าง Next.js และ React.js และสามารถตัดสินใจเลือกใช้งานตามความต้องการของคุณได้ดีขึ้นนะครับ!

การใช้ Image Optimization ใน Next.js: โหลดไว SEO ดี ประหยัดแบนด์วิธ!

เคยเจอปัญหาเว็บโหลดช้าเพราะรูปภาพขนาดใหญ่หรือเปล่า? 📷 ถ้าใช่ Next.js มีฟีเจอร์ Image Optimization ที่ช่วยให้รูปภาพโหลดเร็วขึ้น อัตโนมัติ ไม...