🌐
Miniclass Web
  • Miniclass Web
  • 1. Pengenalan Pemrograman Web
    • Cara Kerja Website
    • Pengenalan Backend dan Frontend
    • HTTP Request dan HTTP Response
  • 2. HTML
    • Pengenalan HTML
    • Text Formatting
    • Link
    • Media
    • List
    • Table
    • Form
    • Grouping
  • 3. CSS
    • Pengenalan CSS
    • Selector CSS
    • Text Formatting
    • Background
    • Border
    • Height dan Width
    • Spacing
    • Layouting
    • Responsive Design
    • Membuat Template Web Responsive
  • 4. Javascript
    • Pengenalan JavaScript
    • Javascript for Java developer
    • Array
    • Fungsi
    • Manipulasi DOM
    • Event
    • Fetch API
    • Object JavaScript
    • UI Component Lanjutan
  • 5. Node.js
    • Pengenalan Node.js
    • Membuat Server HTTP
    • Routing
    • Import Export
    • Node Package Manager
    • Nodemon
  • 6. Express.js
    • Pengenalan Express.js
    • HTTP Method
    • Menerima Data dari URL
    • Middleware
    • Menerima Data dari Body
    • Mengunggah File
    • Menampilkan File dalam Folder
    • Menyimpan Data ke Database MySQL
  • 7. Modern Frontend Development
    • ECMAScript
    • Transpiler
    • Module Bundler
  • 8. React Fundamental
    • Pengenalan React JS
    • Props
    • Event
    • State
    • Conditional Rendering
    • Component Mapping
    • Side Effect
    • Custom Hook
  • 9. React State Management
    • Lifting State Up
    • Context
    • Reducer
  • 10. React Performance
    • Debounce
    • Throttling
    • Memoization
    • Profiling
  • 11. React Testing
    • Component Testing
    • Hook Testing
    • Mocking
    • End to End Testing
  • 12. Object Relational Mapping
    • Pengenalan Object Relational Mapping
  • 13. Document Oriented Database
    • Document Oriented Database
    • Object Document Mapping
  • 14. Web Service
    • REST
    • GraphQL
  • 15. Autentikasi
    • JSON Web Token
    • Membuat Web Service Sederhana
  • 16. Microservices
    • Microservices
    • Microservices Gateway
    • Message Queue
    • Remote Procedure Call
    • Membuat Micro Service Sederhana
  • 18. Caching
Powered by GitBook
On this page
  • 1. Penjelasan Props
  • 2. Permasalahan
  • 3. Solusi
  • 4. Tipe Props
  • 4.1. Tipe Dasar
  • 4.2. Tipe Collection
  • 4.3. Tipe Object
  • 4.4. Tipe Element
  • 5. Kesimpulan

Was this helpful?

  1. 8. React Fundamental

Props

PreviousPengenalan React JSNextEvent

Last updated 4 years ago

Was this helpful?

1. Penjelasan Props

Props merupakan suatu nilai yang diberikan kepada suatu component ketika component tersebut dibuat. Untuk lebih memahami apa itu props, maka kita perlu berangkat dari sebuah permasalahan

2. Permasalahan

Sebelumnya, kita sudah membuat component Header seperti dibawah ini :

// Header.js

import React, {Component} from 'react'

class Header extends Component {
  render() {
    return (
      <div>
        <h1>Halaman Beranda</h1>
        <p>selamat datang di website kami</p>
      </div>
    )
  }
}

export default Header

Dalam react kita dapat membuat sebuah component yang dapat digunakan berkali - kali pada banyak halaman. Misalnya component Header diatas dapat kita gunakan di halaman apapun, baik itu di halaman beranda maupun di halaman lain.

Namun masalahnya adalah teks yang ada di dalam component Header tersebut adalah Halaman Beranda, dan teks tersebut tidak akan cocok apabila diterapkan ke halaman lain

3. Solusi

Permasalahan di atas bisa kita pecahkan dengan menggunakan props, kita cukup membuat satu component Header namun dengan disisipi props di dalamnya

// Header.js

import React, {Component} from 'react'

class Header extends Component {
  render() {
    return (
      <div>
        <h1>{this.props.title}</h1>
        <p>{this.props.description}</p>
      </div>
    )
  }
}

export default Header

Component Header yang kita buat diatas sekarang memiliki duah buah props, yaitu title dan description yang bisa kita isi sesuai kebutuhan

// pada halaman beranda
<Header title="Halaman Beranda" description="selamat datang di website kami">

// pada halaman kontak
<Header title="Halaman Kontak" description="hubungi kami apabila ada saran atau keluhan">

// pada halaman X
<Header title="Halaman X" description="deskripsi halaman x">

4. Tipe Props

Untuk menentukan suatu tipe pada props kita bisa menggunakan library bernama prop-types

npm install --save prop-types

Kemudian kita import pada component yang ingin kita beri props

import PropTypes from 'prop-types'

Kemudian baru bisa kita gunakan seperti berikut

import React from 'react'
import PropTypes from 'prop-types'

class MyComponent extends React.Component {
  render() {
    // ... do things with the props
  }
}

MyComponent.propTypes = {
  optionalNumber: PropTypes.number,
  optionalObject: PropTypes.object,
  optionalString: PropTypes.string,
  requiredString: PropTypes.string.isRequired
}

4.1. Tipe Dasar

Tipe

Contoh

Kelas

String

'hello'

PropTypes.string

Number

10, 0.1

PropTypes.number

Boolean

true / false

PropTypes.bool

Function

console.log()

PropTypes.func

Symbol

Symbol('msg')

PropTypes.symbol

Object

{name: 'aka'}

PropTypes.object

4.2. Tipe Collection

Tipe

Contoh

Penjelasan

Array

[]

PropTypes.array

Array Berisi Angka

[1, 2, 3]

PropTypes.arrayOf([type])

Enum

['Red', 'Blue']

PropTypes.arrayOf([arr])

4.3. Tipe Object

Tipe

Contoh

Penjelasan

Object

{name: 'aka'}

PropTypes.object

Number object

{count: 42}

PropTypes.objectOf()

Instance

new Message()

PropTypes.objectOf()

Object shape

{name: 'aka'}

PropTypes.shape()

4.4. Tipe Element

Tipe

Contoh

Penjelasan

Element

<Element />

PropTypes.element

5. Kesimpulan

Dengan menggunakan props kita bisa membuat component kita reusable namun nilainya tetap dinamis

Untuk mempelajari lebih dalam tentang props silahkan kunjungi link berikut :

https://reactjs.org/docs/components-and-props.html
https://www.npmjs.com/package/prop-types