> For the complete documentation index, see [llms.txt](https://uby-rn.gitbook.io/react-native/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://uby-rn.gitbook.io/react-native/ders-3.0/state-yonetimi-and-redux-toolkit/slice-olusturmak.md).

# Slice Oluşturmak

Global veriler üzerinde değişiklikler yaptığımız değişiklikler için Slice dosyalarımızı oluştururuz.&#x20;

Mesela sayaç uygulaması yaptığımız bir senaryo düşünelim. Bu senaryoda sayaç değerini tuttuğumuz bir `counter` değişkenimiz olsun. Bu değişkeni oluşturduğumuz ve bu değişkenle ilgili fonksiyonları tuttuğumuz dosyamıza da `CounterSlice.js` ismini verelim. Örnek olarak bu dosyada kullanmak istediğimiz bazı fonksiyonlar da ekleyelim. Sayaç değişkenini 1 arttırmak için Increase, 1 azaltmak için decrease ve sıfırlamak için de refresh fonksiyonlarımız olsun. Örnek dosyayı aşağıdaki gibi oluşturabiliriz.

```jsx
// CounterSlice.js

import { createSlice } from '@reduxjs/toolkit'



export const CounterSlice = createSlice({
    name: 'counter',
    initialState: {
        value: 0,
    },
    reducers: {
        increment: (state) => { // state'te bulunan değeri 1 arttır.
            state.value += 1
        },
        decrement: (state) => { // state'te bulunan değeri 1 azalt
            state.value -= 1
        },
        refresh: (state) => { // state'te bulunan değeri sıfırla
            state.value = 0
        },
    },
})

export const { 
    increment,
    decrement,
    incrementByAmount,
    refresh,
    multiplyByAmount
} = CounterSlice.actions

export default CounterSlice
```

***

### **name**

slice'ın ismini tanımladığımız bölümdür.

***

### **createSlice**

Bu kodda `createSlice` fonksiyonunu @reduxjs/toolkit kütüphanesinden import edip kullanarak bir slice oluşturmuş olduk ve bu slice içerisinde 3 tane (istersek daha fazla fonksiyon ekleyebiliriz) de fonksiyonumuz oldu. Farklı türde işlevler yapmak istediğimiz farklı slice dosyaları oluşturabiliriz. Mesela kullanıcı işlemlerini store kullanarak yönettiğimiz bir `UserSlice` dosyası oluşturabiliriz.

***

### initialState

`initialState` objesi içerisinde bulunan `value` değişkeni, başlangıç değeri 0 (sıfır) olan, `number` türünde bir değişkendir.

***

### reducers

`reducers` objesinin içerisinde value değişkeninin o anki state'i ile ilgili değişiklikler yapacağımız fonksiyonlarımız bulunur.
