[javascript] Vue Router와 Vuex 상태 관리

Vue.js는 프론트엔드 웹 애플리케이션을 개발하는 데 사용되는 유연하고 강력한 프레임워크입니다. Vue Router와 Vuex는 Vue.js 애플리케이션을 개발하는 데 필수적인 도구입니다.

Vue Router

Vue Router는 Vue.js 애플리케이션의 네비게이션을 관리하는 데 사용됩니다. URL을 기반으로 애플리케이션의 다른 뷰 간에 전환할 수 있게 해줍니다. Vue Router를 사용하면 라우트, 동적 라우팅, 중첩 라우트와 같은 기능들을 쉽게 구현할 수 있습니다.

// 예시 코드
import Vue from 'vue';
import VueRouter from 'vue-router';
import Home from './components/Home.vue';
import About from './components/About.vue';

Vue.use(VueRouter);

const routes = [
  { path: '/', component: Home },
  { path: '/about', component: About },
];

const router = new VueRouter({
  routes,
});

export default router;

Vuex

Vuex는 Vue.js 애플리케이션의 상태 관리 패턴라이브러리입니다. 컴포넌트 간의 데이터 전달 및 공유를 효율적으로 관리할 수 있게 해줍니다. 상태, 뮤테이션, 액션, 게터 등의 개념을 사용하여 애플리케이션의 상태를 예측 가능한 방식으로 변경 및 조작할 수 있습니다.

// 예시 코드
import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

export default new Vuex.Store({
  state: {
    count: 0,
  },
  mutations: {
    increment(state) {
      state.count++;
    },
    decrement(state) {
      state.count--;
    },
  },
  actions: {
    incrementAsync({ commit }) {
      setTimeout(() => {
        commit('increment');
      }, 1000);
    },
  },
  getters: {
    doubleCount(state) {
      return state.count * 2;
    },
  },
});

Vue Router와 Vuex의 통합

Vue Router와 Vuex를 통합하여 사용하면, 라우팅된 뷰 간에 데이터를 효율적으로 공유하고 관리할 수 있습니다. 이를 통해 복잡한 애플리케이션에서 데이터의 일관성을 유지하고 관리할 수 있습니다.

// 예시 코드
import Vue from 'vue';
import Vuex from 'vuex';
import VueRouter from 'vue-router';
import store from './store';
import router from './router';
import App from './App.vue';

Vue.use(Vuex);
Vue.use(VueRouter);

new Vue({
  el: '#app',
  router,
  store,
  render: h => h(App),
});

Vue Router와 Vuex를 함께 사용하여 Vue.js 애플리케이션의 상태와 네비게이션을 효과적으로 관리할 수 있습니다. 이를 통해 개발자는 강력한 상태 관리와 라우팅 기능을 제공하는 모던한 웹 애플리케이션을 개발할 수 있습니다.

참고 자료: