Для создания отдельного slice для каждого компонента в Redux Toolkit, вы можете использовать функцию createSlice для каждого компонента отдельно.
Пример:
1. Для компонента "Component1":
```js
import { createSlice } from '@reduxjs/toolkit';
const initialState = {
data: [],
};
const component1Slice = createSlice({
name: 'component1',
initialState,
reducers: {
updateData(state, action) {
state.data = action.payload;
},
},
});
export const { updateData } = component1Slice.actions;
export default component1Slice.reducer;
```
2. Для компонента "Component2":
```js
import { createSlice } from '@reduxjs/toolkit';
const initialState = {
value: 0,
};
const component2Slice = createSlice({
name: 'component2',
initialState,
reducers: {
increment(state) {
state.value += 1;
},
},
});
export const { increment } = component2Slice.actions;
export default component2Slice.reducer;
```
3. В вашем главном редьюсере (rootReducer) объедините все срезы:
```js
import { combineReducers } from 'redux';
import component1Reducer from './components/Component1Slice';
import component2Reducer from './components/Component2Slice';
const rootReducer = combineReducers({
component1: component1Reducer,
component2: component2Reducer,
// Другие срезы для других компонентов
});
export default rootReducer;
```
Таким образом, у каждого компонента на странице будет свой собственный slice в хранилище Redux, который можно использовать для управления состоянием этого компонента независимо от других компонентов.