🌐
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 State
  • 1. Masalah
  • 2. Solusi
  • 3. Hubungan Antara State dan Component
  • 4. Cara Menggunakan State
  • 4.1. Membuat State
  • 4.2. Mengakses State
  • 4.3. Mengupdate State
  • 5. Contoh Penggunaan State

Was this helpful?

  1. 8. React Fundamental

State

PreviousEventNextConditional Rendering

Last updated 4 years ago

Was this helpful?

1. Penjelasan State

State merupakan data yang dimiliki oleh suatu component yang dapat kita ubah nilainya, untuk lebih jelasnya, silahkan simak penjelasan berikut

1. Masalah

Sebelumnya kita sudah mengenal props, props merupakan nilai yang diberikan kepada suatu component ketika component tersebut digunakan. Setelah props diterima, maka component tersebut tidak bisa mengubah nilai yang ada di dalam props.

Namun terkadang suatu component perlu melakukan update pada data yang dimilikinya. Beberapa contoh data yang perlu diupdate yaitu :

  1. textValue pada component TextInput

  2. time pada component Timer

  3. clickCount pada component Button

2. Solusi

State merupakan data suatu component yang boleh diubah. Nilai dari state ditentukan sendiri oleh suatu component, berbeda dengan props yang datanya ditentukan oleh component lain.

Setelah nilai dari state diinisialisasi oleh suatu component, maka nilai dari state tersebut bisa diubah - ubah oleh component itu sendiri.

3. Hubungan Antara State dan Component

State dan component memiliki keterkaitan satu sama lain, yaitu :

  1. Component akan menginisialisasi nilai dari state yang dimilikinya

  2. User akan mentrigger event untuk mengupdate nilai dari state

  3. Saat nilai dari state berubah, maka component yang memiliki state tersebut akan dirender ulang dengan nilai dari state yang sudah terupdate.

Kesimpulannya adalah, tampilan dari suatu component akan berubah apabila statenya berubah

4. Cara Menggunakan State

4.1. Membuat State

Sebelum state dapat digunakan, kita perlu membuatnya terlebih dahulu

import React, {Component} from 'react'

export default class MyComponent extends Component {

  // membuat attribute state pada class MyComponent
  state = {
    namaState1: 'nilai state',
    namaState2: 5
  }

  render() {
    return <div>My Component</div>
  }
}

4.2. Mengakses State

Untuk mengakses nilai suatu state, kita dapat mengaksesnya secara langsung menggunakan this

this.state.namaState1
this.state.namaState2

4.3. Mengupdate State

Untuk mengupdate state kita menggunakan method setState()

this.setState({
  namaState1: value,
  namaState2: value
})

Setelah kita menjalankan setState() maka component tersebut akan langsung dirender ulang secara otomatis

5. Contoh Penggunaan State

Disini kita akan merubah component Button yang sudah pernah kita buat sebelumnya dengan menambahkan state clickCount yang akan bertambah setiap kali component Button diklik

// Button.js

import React, { Component } from 'react'

class Button extends Component {
  // inisiasi state
  state = {
    clickCount: 0
  }

  // update state clickCount
  addClickCount = () => {
    this.setState({
      clickCount: this.state.clickCount + 1
    })
  }

  // tampilkan state clickCount
  render() {
    return (
      <div>
        <p>Jumlah klik : {this.state.clickCount}</p>
        <button onClick={addClickCount}>Klik Saya</button>
      </div>
    )
  }
}

export default Button