Stateless Component ใน React

10 Feb 2018,
Share: 

สวัสดีครับ บทความนี้จะเกี่ยวกับ การสร้างและใช้งาน Stateless Component ใน React ซึ่งเป็นการสร้าง Component อีกรูปแบบหนึ่ง ที่ภายใน Component จะไม่มี State

ในบาง  Component ที่เราสร้างขึ้นมาใช้งานไม่จําเป็นจะต้องใช้ State อาจเป็นเพียง Component ที่รับข้อมูลเข้ามาแล้วแสดงผลเพียงอย่างเดียว จึงไม่จําเป็นต้องสร้าง Component แบบเดิมที่จะต้อง Extends React.Component ทําให้เวลาที่เราใช้งานก็จะมี Life Cycle ต่างๆ ของ React มาด้วย วิธีการสร้าง Stateless Component ง่ายๆก็คือสร้าง Function ขึ้นมาเท่านั้นเอง ตามตัวอย่างนี้

function myName(props) {
  return <h1>My name is {props.name}</h1>
}

Function ด้านบนจะรับค่า Props เข้ามา แล้ว Return JSX ออกไป มาดูตัวอย่างการใช้งานกัน เราจะสร้าง Stateless Component โดยสร้างไฟล์ชื่อว่า myname.js แล้วก็ใส่ Code นี้ลงไป

import React from 'react'

function header(props) {
    return (
        <div>
            <h1>{props.msg}</h1>
        </div>
    )
}

export default header

หรือจะเขียนเทห์ๆ แบบ ES6 จะได้แบบนี้

import React from 'react'

const header = ({ msg }) => (
    <div>
        <h1>{msg}</h1>
    </div>
)

export default header

เวลานํา Component ไปใช้งาน ก็ Import เข้ามาใช้เหมือน Component ทั่วไปได้เลย

<Header msg="My header" />

ลองเอาไปใส่ใน App.js

Image

ลองรันดูจะได้หน้าตาแบบนี้

Image

ข้อดีของ Stateless Component

  • ไม่ต้องใช้ this (ไม่ต้อง bind ใน Constructor) แล้ว เช่น this.props.name ก็ใช้ props.name ได้เลย หรือ {onClikc={handleClikc}
  • ไม่ต้อง extends Class ให้ยุ่งยาก

Suggestion blogs

C++ OOP การสร้าง Pointer Object ของ Class

จากบทความ C++ OOP การสร้าง Class และการใช้งาน Class ผมอธิบายถึงการสร้าง Object แบบ Stack แต่ในบทความนี้ผมจะอธิบายเรื่องการสร้าง Object โดยใช้ Pointer ข้อแตกต่างกันคือ การสร้าง Object แบบ Stack จะคล้ายๆกับเราสร้างตัวแปรขึ้นมาตัวนึงเมื่อใช้งานเสร็จหรือจบโปรแกรม ระบบจะคืน memory หรือทําลาย Object นั้นทิ้งให้โดยอัตโนมัติ แต่ถ้าสร้าง Object แบบ Pointer จะไม่ทําลาย Object ให้เราเมื่อจบโปรแกรม เราจะต้องเป็นคนทําลาย Object เอง ทําสั่งที่ใช้ ทําลาย Object คือ "delete" ตามด้วย Object ที่ต้องการลบ _ถ้าเราไม่ลบ Object ที่เราสร้างขึ้น ระบบจะไม่สามารถเข้าใช้งาน memory ในส่วนนั้นได้ ทําให้เกิด memory leak _

แอบเปิดกล้องแอป facebook messenger

สวัสดีครับในบทความนี้ ผมจะบอกว่าแอป facebook messenger สามารถ เปิดกล้อง Video call ได้โดยที่เจ้าของไม่อนุญาติ มันอาจจะเป็น bug ของแอป facebook messenger หรือป่าวผมไม่แน่ใจนะครับ ซึ่งผมเจอมันโดยบังเอิญ มาลองดู Video กันว่ามันทําได้อย่างไร

เปลี่ยน port xrdp raspberry pi

สวัสดีครับ ในบทความที่แล้วผมเขียนเรื่องการ ติดตั้ง xrdp ไปแล้ว ในบทความนี้ผมจะมาสอนวิธีเปลี่ยน port ของ xrdp


Copyright © 2019 - 2025 thiti.dev |  v1.51.0 |  Privacy policy | 

Build with ❤️ and Astro.

Github profile   Linkedin profile   Instagram   X profile   Nostr   Youtube channel   Telegram   Email contact   วงแหวนเว็บ