CodeBlanks Logo Icon CodeBlanks

Props ile stil

Bir styled bileşene prop geçip stili değiştirmeyi öğrenirsin.

Props ile stil

styled-components bileşenleri props alabilir. Şablon içinde ${props => props.color} ile props'a göre dinamik değer üretirsin.

Böylece <Btn color="red" /> yazınca düğme kırmızı olur. Aynı bileşen farklı props ile farklı renklerde çalışır.

Bu, bileşenlerin yeniden kullanılabilir ve esnek olmasını sağlar. Tek bir düğme bileşeni farklı renk ve boyutlarda onlarca yerde çalışır; bu da kod tekrarını ciddi biçimde azaltır.

Koşullu stil

Props'a göre stilleri koşullu da yazabilirsin: ${props => props.primary ? "blue" : "gray"}. Böylece tek bileşen hem birincil hem ikincil düğme olur.

Bu, çok sayıda sınıf adı yazmaktan kurtarır; mantık tek yerde toplanır.

İleride tema ile renkleri merkezi yapacağız; şimdilik props yeter.

Uygulama Renkli düğme

Aşağıdaki iskeleti tamamla. ColorButton adında stilli bileşen oluştur; styled.button\`color: ${props => props.color};\` ile tanımla. <ColorButton color="green">Tamam</ColorButton> döndür. Dışa aktar.

Başlangıç kodu

App.jsx
// ColorButton bileşenini buraya tanımla

Örnek çözüm

App.jsx
const ColorButton = styled.button`color: ${props => props.color};`;

function App() { return <ColorButton color="green">Tamam</ColorButton>; }
export default ColorButton;

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Şablon içinde props'a nasıl erişilir?

App.jsx
A dynamic value is made with a function inside ${}.
  • ${props.x}
  • this.props.x
  • props.x
  • ${props => props.x} Doğru cevap

Açıklama: ${} içinde fonksiyon ile props okunur.

2 Props ile stil: eksik parçayı tamamla

Soru
color: ${props => props.____};
Cevap
color: ${props => props.color};

Açıklama: props.color ile rengi okudun.

3 Props ile stil: kavramları eşleştir

Kavram Anlamı
${props => ...} Dinamik değer
color="red" Prop geçme
props.primary ? Koşul
<Btn /> Kullanım

Başlangıç bölümündeki tüm dersler