TypeScript met Redux in een React-applicatie

TypeScript integreren met Redux in een React-applicatie verbetert typeveiligheid en verbetert de onderhoudbaarheid van code. Deze gids leidt u door het instellen van TypeScript met Redux, inclusief het definiëren van typen en het integreren met React-componenten.

Stap 1: Afhankelijkheden installeren

Installeer eerst de benodigde pakketten voor de typen Redux, React-Redux en TypeScript.

npm install redux react-redux @reduxjs/toolkit
npm install @types/react-redux --save-dev

Stap 2: Redux Store instellen

Maak de Redux-store met TypeScript. Definieer typen voor de status en acties en configureer de store.

import { configureStore } from '@reduxjs/toolkit';
import { rootReducer } from './reducers';

export type RootState = ReturnType<typeof store.getState>;
export type AppDispatch = typeof store.dispatch;

const store = configureStore({
  reducer: rootReducer,
});

export default store;

Stap 3: Definieer acties en reducers

Maak actietypen, actiemakers en reducers. Gebruik TypeScript om de status en actietypen voor sterke typering te definiëren.

import { createSlice, PayloadAction } from '@reduxjs/toolkit';

interface CounterState {
  value: number;
}

const initialState: CounterState = {
  value: 0,
};

const counterSlice = createSlice({
  name: 'counter',
  initialState,
  reducers: {
    increment: (state) => {
      state.value += 1;
    },
    decrement: (state) => {
      state.value -= 1;
    },
    incrementByAmount: (state, action: PayloadAction<number>) => {
      state.value += action.payload;
    },
  },
});

export const { increment, decrement, incrementByAmount } = counterSlice.actions;
export default counterSlice.reducer;

Stap 4: Verbind Redux met React-componenten

Gebruik de useSelector en useDispatch hooks van React-Redux om Redux-status- en dispatch-acties in React-componenten te verbinden.

import React from 'react';
import { useSelector, useDispatch } from 'react-redux';
import { RootState, AppDispatch } from './store';
import { increment, decrement, incrementByAmount } from './counterSlice';

const Counter: React.FC = () => {
  const dispatch = useDispatch<AppDispatch>();
  const count = useSelector((state: RootState) => state.counter.value);

  return (
    <div>
      <h1>{count}</h1>
      <button onClick={() => dispatch(increment())}>Increment</button>
      <button onClick={() => dispatch(decrement())}>Decrement</button>
      <button onClick={() => dispatch(incrementByAmount(10))}>Increment by 10</button>
    </div>
  );
};

export default Counter;

Stap 5: Integreer Redux Store met React

Omsluit het hoofdcomponent van React met het Provider-component van React-Redux om de Redux-opslag door te geven aan de toepassing.

import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import store from './store';
import App from './App';

ReactDOM.render(
  <Provider store={store}>
    <App />
  </Provider>,
  document.getElementById('root')
);

Conclusie

TypeScript gebruiken met Redux in een React-applicatie biedt sterke typering en verbetert de betrouwbaarheid van de code. Door deze stappen te volgen, kan de Redux-store worden ingesteld met TypeScript, kunnen acties en reducers worden gedefinieerd en kan Redux worden geïntegreerd met React-componenten.