Redux Toolkit을 이용한 자바스크립트 앱의 키보드 단축키 지원
키보드 단축키는 사용자들에게 앱을 더 효율적으로 사용할 수 있는 방법을 제공해줍니다. 자바스크립트 앱에서 키보드 단축키를 지원하기 위해서 Redux Toolkit을 사용하는 것은 좋은 선택입니다. Redux Toolkit은 Redux 앱을 구성하는 데 도움을 주는 강력한 라이브러리입니다.
Redux Toolkit 설치
먼저 Redux Toolkit을 설치해야 합니다. npm을 사용한다면 다음 명령어를 터미널에 입력하여 Redux Toolkit을 설치할 수 있습니다.
npm install @reduxjs/toolkit
액션 생성자와 리듀서 작성
Redux Toolkit은 액션 생성자와 리듀서를 작성하는 과정을 단순화시켜줍니다. 액션 생성자는 키보드 단축키와 연결된 액션을 생성하는 함수입니다. 리듀서는 이 액션을 처리하는 함수입니다.
import { createSlice } from '@reduxjs/toolkit';
const initialState = {
counter: 0
};
const counterSlice = createSlice({
name: 'counter',
initialState,
reducers: {
increment(state) {
state.counter++;
},
decrement(state) {
state.counter--;
}
}
});
export const { increment, decrement } = counterSlice.actions;
export default counterSlice.reducer;
단축키 지원하기
Redux Toolkit으로 작성한 리덕스 앱에서 키보드 단축키를 지원하려면 이벤트 핸들러를 사용해야 합니다. 앱 컴포넌트에서 useEffect
훅을 사용하여 이벤트 핸들러를 등록할 수 있습니다.
import React, { useEffect } from 'react';
import { useDispatch } from 'react-redux';
import { increment, decrement } from './counterSlice';
const App = () => {
const dispatch = useDispatch();
useEffect(() => {
const handleKeyDown = (e) => {
if (e.key === 'ArrowUp') {
dispatch(increment());
} else if (e.key === 'ArrowDown') {
dispatch(decrement());
}
};
window.addEventListener('keydown', handleKeyDown);
return () => {
window.removeEventListener('keydown', handleKeyDown);
};
}, []);
return (
// 앱 컴포넌트의 내용...
);
};
export default App;
위의 예시 코드에서는 ArrowUp 키를 누르면 increment
액션이 디스패치되고, ArrowDown 키를 누르면 decrement
액션이 디스패치됩니다. 이렇게 Redux Toolkit을 사용하면 간단하게 키보드 단축키를 지원할 수 있습니다.
#redux #redux-toolkit