vue.js
vue.js 여러 개의 컴포넌트를 코드 한 줄로 가져오기
PJH
2022. 8. 2. 14:05
1. 문제
import Vue from 'vue';
import VueRouter from 'vue-router';
import Signin from '../components/Signin.vue';
import Signup from '../components/Signup.vue';
import Post from '../components/Post.vue';
// ... 점점 늘어나는 컴포넌트들
Vue.use(VueRouter);
export default new VueRouter({
mode : 'history',
routes: [
{
path : '/',
component : Signin
},
{
path : '/signup',
component : Signup
},
{
path : `/post`,
component : Post
}
// ... 점점 늘어나는 컴포넌트들
]
});
/src/router/index.js
페이지 이동에 사용되는 라우터를 설정하는 파일이다.
컴포넌트들을 여러 개 만들고 라우터를 연결해주면 다음 상황을 반드시 마주치게 된다.
컴포넌트가 늘어나면 늘어날수록 import 코드도 점점 늘어나게 될 것이고, 가져오기 위해 일일이 동일한 코드를 계속 작성해야 한다. 오히려 코드 길이만 늘어나 가독성을 해치게 되고 유지보수에도 좋지 않다.
2. 해결
export { default as Signin } from './Signin.vue';
export { default as Signup } from './Signup.vue';
export { default as Post } from './Post.vue';
/src/components/index.js
가져오고자 하는 컴포넌트들이 모인 폴더에 index.js를 하나 만든다.
import Vue from 'vue';
import VueRouter from 'vue-router';
import {Signin, Signup, Post} from '../components';
/*
주석 친 부분은 지워도 됨
import Signin from '../components/Signin.vue';
import Signup from '../components/Signup.vue';
import Post from '../components/Post.vue';
*/
Vue.use(VueRouter);
export default new VueRouter({
mode : 'history',
routes: [
{
path : '/',
component : Signin
},
{
path : '/signup',
component : Signup
},
{
path : `/post`,
component : Post
}
]
});
/src/router/index.js
이제 코드 한 줄로 여러 개의 컴포넌트들을 가져올 수 있게 됐으며, 필요한 컴포넌트만 가져오는 것도 가능하다.