[javascript] Vue Router를 이용한 파일 업로드

이번에는 Vue.js 애플리케이션에서 Vue Router를 사용하여 파일을 업로드하는 방법에 대해 알아보겠습니다. Vue Router는 Vue.js 애플리케이션 내에서 네비게이션을 관리하는데 유용한 도구입니다.

1. Vue Router 설정

먼저, Vue Router를 사용하기 위해 Vue 프로젝트에 Vue Router를 설치합니다.

npm install vue-router

그런 다음, 다음과 같이 router.js 파일을 생성하여 Vue Router를 설정합니다.

// router.js

import Vue from 'vue'
import VueRouter from 'vue-router'
import FileUpload from './components/FileUpload.vue'

Vue.use(VueRouter)

const routes = [
  { path: '/', component: FileUpload }
]

const router = new VueRouter({
  routes
})

export default router

2. 파일 업로드 컴포넌트 생성

이어서, 파일을 업로드하는 Vue 컴포넌트를 생성합니다. FileUpload.vue 파일을 생성하고 다음과 같이 내용을 작성합니다.

<!-- FileUpload.vue -->

<template>
  <div>
    <input type="file" @change="handleFileUpload">
    <button @click="uploadFile">Upload</button>
  </div>
</template>

<script>
export default {
  methods: {
    handleFileUpload(event) {
      this.file = event.target.files[0]
    },
    uploadFile() {
      // 파일 업로드 로직을 구현합니다.
      // axios 또는 fetch를 사용하여 파일을 서버로 전송할 수 있습니다.
    }
  }
}
</script>

3. 라우팅 및 파일 업로드

마지막으로, Vue Router를 사용하여 파일 업로드 컴포넌트를 라우팅합니다. 애플리케이션의 진입점인 App.vue 파일에서 라우터를 등록하고, 파일 업로드 컴포넌트를 호출합니다.

<!-- App.vue -->

<template>
  <div id="app">
    <router-view></router-view>
  </div>
</template>

<script>
export default {
  name: 'App'
}
</script>

그리고 나서, main.js 파일에서 다음과 같이 라우터를 등록합니다.

// main.js

import Vue from 'vue'
import App from './App.vue'
import router from './router'

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')

이제 Vue Router를 사용하여 파일을 업로드할 수 있는 Vue.js 애플리케이션이 준비되었습니다. 위 예시는 간단한 파일 업로드 로직을 구현한 것이므로, 실제 프로젝트에 적용할 때 실제 파일 업로드 및 처리를 위해 서버 사이드 로직을 추가해야 합니다.