728x90
반응형
회원 가입
회원 가입 API를 호출하여 입력된 정보를 바탕으로 회원 가입을 진행한다.
API 호출을 위한 Axios 설치
npm i axios
구현 방법
1. API 호출을 위한 Axios 구현
// src/api/index.js import axios from 'axios'; function registerUser(userData) { // 요청할 URL const url = 'http://localhost:3000/signup'; return axios.post(url, userData); } // 함수 export export { registerUser };
2. 폼 입력창과 API 호출 기능을 수행하는 SignupForm.vue 컴포넌트 생성
<!-- src/components/SignupForm.vue --> <template> <!-- @submit = v-on:submit --> <!-- prevent: 새로고침 방지 --> <form @submit.prevent="submitForm"> <div> <label for="username">id: </label> <!-- v-model: data 속성과 연결 --> <input id="username" type="text" v-model="username" /> </div> <div> <label for="password">pw: </label> <input id="password" type="text" v-model="password" /> </div> <div> <label for="nickname">nickname: </label> <input id="nickname" type="text" v-model="nickname" /> </div> <button type="submit">회원 가입</button> <!-- 결과 메시지 출력 --> <p>{{ logMessage }}</p> </form> </template> <script> import { registerUser } from '@/api/index'; export default { data() { return { // form username: '', password: '', nickname: '', // log logMessage: '', }; }, methods: { async submitForm() { // API 요청시 전달할 userData 객체 const userData = { username: this.username, password: this.password, nickname: this.nickname, }; const { data } = await registerUser(userData); this.logMessage = `${data.username} 님이 가입되었습니다.`; // 가입 후 폼 초기화 this.initForm(); }, initForm() { this.username = ''; this.password = ''; this.nickname = ''; }, }, }; </script>
동작 확인

728x90
반응형
'Dev > Vue.js' 카테고리의 다른 글
[Vue.js] Today I Learned - 로그인 (0) | 2020.10.27 |
---|---|
[Vue.js] Today I Learned - 공통 환경 설정 (0) | 2020.10.26 |
[Vue.js] Today I Learned - 라우터 & 컴포넌트 설계 (0) | 2020.10.26 |
[Vue.js] Today I Learned - 프로젝트 생성 및 환경 구성 (0) | 2020.10.13 |
[Vue.js] Today I Learned - API 프로젝트 구성 (0) | 2020.10.07 |
댓글