Tepki useState
Kancası
React useState
Hook, bir fonksiyon bileşenindeki durumu izlememizi sağlar.
Durum genellikle bir uygulamada izlenmesi gereken verileri veya özellikleri ifade eder.
İçe aktarmakuseState
useState
Hook'u kullanmak için önce import
onu bileşenimize eklememiz gerekiyor.
Örnek:
Bileşeninizin en üstünde, import
Kanca useState
.
import { useState } from "react";
Adlandırılmış bir dışa aktarma olduğu useState
iç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
useState
Fonksiyon bileşenimizi çağırarak durumumuzu başlatıyoruz.
useState
bir 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, setColor
durumumuzu 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("")
Sertikalı olmak!
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 , useState
dizileri, 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 previousState
ve yalnızca rengin üzerine yazarız.