Tepki useStateKancası


React useStateHook, bir fonksiyon bileşenindeki durumu izlememizi sağlar.

Durum genellikle bir uygulamada izlenmesi gereken verileri veya özellikleri ifade eder.


İçe aktarmakuseState

useStateHook'u kullanmak için önce importonu bileşenimize eklememiz gerekiyor.

Örnek:

Bileşeninizin en üstünde, importKanca useState.

import { useState } from "react";

Adlandırılmış bir dışa aktarma olduğu useStateiçin yok ettiğimize dikkat edin .react

Yıkım hakkında daha fazla bilgi edinmek için ES6 bölümüne bakın .


başlatuseState

useStateFonksiyon bileşenimizi çağırarak durumumuzu başlatıyoruz.

useStatebir başlangıç ​​durumunu kabul eder ve iki değer döndürür:

  • Şu anki durum.
  • Durumu güncelleyen bir işlev.

Örnek:

İşlev bileşeninin en üstündeki durumu başlat.

import { useState } from "react";

function FavoriteColor() {
  const [color, setColor] = useState("");
}

Tekrar dikkat edin, döndürülen değerleri useState.

İlk değer, color, mevcut durumumuzdur.

İkinci değer, setColordurumumuzu güncellemek için kullanılan fonksiyondur.

Bu isimler, istediğiniz herhangi bir şey olarak adlandırılabilen değişkenlerdir.

Son olarak, ilk durumu boş bir dizeye ayarladık:useState("")


w3schools CERTIFIED . 2022

Sertikalı olmak!

React modüllerini tamamlayın, alıştırmaları yapın, sınava girin ve w3schools sertifikalı olun!

95 $ KAYIT

Durumu Oku

Artık durumumuzu bileşenimizin herhangi bir yerine dahil edebiliriz.

Örnek:

İşlenen bileşende durum değişkenini kullanın.

import { useState } from "react";
import ReactDOM from "react-dom";

function FavoriteColor() {
  const [color, setColor] = useState("red");

  return <h1>My favorite color is {color}!</h1>
}

ReactDOM.render(<FavoriteColor />, document.getElementById('root'));


Durumu Güncelle

Durumumuzu güncellemek için durum güncelleyici fonksiyonumuzu kullanıyoruz.

Durumu asla doğrudan güncellememeliyiz. Örn: color = "red"izin verilmez.

Örnek:

Durumu güncellemek için bir düğme kullanın:

import { useState } from "react";
import ReactDOM from "react-dom";

function FavoriteColor() {
  const [color, setColor] = useState("red");

  return (
    <>
      <h1>My favorite color is {color}!</h1>
      <button
        type="button"
        onClick={() => setColor("blue")}
      >Blue</button>
    </>
  )
}

ReactDOM.render(<FavoriteColor />, document.getElementById('root'));


Devlet Ne Tutabilir

Kanca , useStatedizileri, sayıları, booleanları, dizileri, nesneleri ve bunların herhangi bir kombinasyonunu takip etmek için kullanılabilir!

Bireysel değerleri izlemek için birden çok durum Kancası oluşturabiliriz.

Örnek:

Birden çok durum Kancası oluşturun:

import { useState } from "react";
import ReactDOM from "react-dom";

function Car() {
  const [brand, setBrand] = useState("Ford");
  const [model, setModel] = useState("Mustang");
  const [year, setYear] = useState("1964");
  const [color, setColor] = useState("red");

  return (
    <>
      <h1>My {brand}</h1>
      <p>
        It is a {color} {model} from {year}.
      </p>
    </>
  )
}

ReactDOM.render(<Car />, document.getElementById('root'));

Veya sadece bir durumu kullanabilir ve bunun yerine bir nesne ekleyebiliriz!

Örnek:

Bir nesneyi tutan tek bir Kanca oluşturun:

import { useState } from "react";
import ReactDOM from "react-dom";

function Car() {
  const [car, setCar] = useState({
    brand: "Ford",
    model: "Mustang",
    year: "1964",
    color: "red"
  });

  return (
    <>
      <h1>My {car.brand}</h1>
      <p>
        It is a {car.color} {car.model} from {car.year}.
      </p>
    </>
  )
}

ReactDOM.render(<Car />, document.getElementById('root'));

Artık tek bir nesneyi izlediğimiz için, bileşeni oluştururken o nesneye ve ardından o nesnenin özelliğine başvurmamız gerekir. (Örn: car.brand)


Durumdaki Nesneleri ve Dizileri Güncelleme

Durum güncellendiğinde, tüm durumun üzerine yazılır.

Ya sadece arabamızın rengini güncellemek istersek?

Sadece arasaydık setCar({color: "blue"})marka, model ve yılı devletimizden kaldırırdı.

Bize yardımcı olması için JavaScript yayılma operatörünü kullanabiliriz.

Örnek:

Yalnızca arabanın rengini güncellemek için JavaScript yayılma operatörünü kullanın:

import { useState } from "react";
import ReactDOM from "react-dom";

function Car() {
  const [car, setCar] = useState({
    brand: "Ford",
    model: "Mustang",
    year: "1964",
    color: "red"
  });

  const updateColor = () => {
    setCar(previousState => {
      return { ...previousState, color: "blue" }
    });
  }

  return (
    <>
      <h1>My {car.brand}</h1>
      <p>
        It is a {car.color} {car.model} from {car.year}.
      </p>
      <button
        type="button"
        onClick={updateColor}
      >Blue</button>
    </>
  )
}

ReactDOM.render(<Car />, document.getElementById('root'));

Halihazırdaki durum değerine ihtiyacımız olduğu için, fonksiyonumuza bir fonksiyon geçiriyoruz setCar. Bu fonksiyon önceki değeri alır.

Daha sonra bir nesneyi döndürürüz, yayar previousStateve yalnızca rengin üzerine yazarız.


Egzersizlerle Kendinizi Test Edin

Egzersiz yapmak:

useState Hook kullanarak bir "count" değişkenini takip etmek için bu ifadeyi tamamlayın.

import { useState } from "react";

function KeepCount() {
  const [, ] = useState(0);
}