๐Ÿ“• Language/Vue

[Age of Vue] Vue.js ์‹œ์ž‘ํ•˜๊ธฐ - 33. ์‚ฌ์šฉ์ž ์ž…๋ ฅ ํผ ๋งŒ๋“ค๊ธฐ

a n u e 2022. 5. 9. 23:22

npm i axios


App.vue

 

<template>
<!--
  <form action="">
-->
<form v-on:submit.prevent="submitForm">
  <div>
    <!-- for : ์–ด๋–ค ํƒœ๊ทธ๋ฅผ ์œ„ํ•œ(for) ๋ ˆ์ด๋ธ”์ธ์ง€ ์ •์˜ -->
      <label for="username">id :</label>
      <!-- input-v-model => two way data binding 
      v-model๋กœ ์ธํ•ด ํ•˜๋‹จ์˜ data username๊ณผ ๋งคํ•‘๋˜์–ด์ง -->
      <input id="username" type="text" v-model="username">
  </div>
  <div>
      <label for="password">pw :</label>
      <!-- input-v-model => two way data binding 
      v-model๋กœ ์ธํ•ด ํ•˜๋‹จ์˜ data password ๋งคํ•‘๋˜์–ด์ง -->
      <input id="password" type="password" v-model="password">
  </div>
  <!-- form ๋‹จ์œ„ submit -->
  <button type="submit">login</button>
</form>    
</template>

<script>
import axios from 'axios';

export default {
  //๋ณดํ†ต ์ปดํฌ๋„ŒํŠธ ๊ฐ„ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ณต์œ ๋˜์ง€ ์•Š๋„๋ก
  //๋ฐ”๋กœ ๊ฐ์ฒด๋ฅผ ์“ฐ์ง€ ์•Š๊ณ , function์„ ํ†ตํ•ด ์ƒˆ ๊ฐ์ฒด๋ฅผ returnํ•ด์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ์“ฐ์—ฌ์ง
  data : function() {
    return {
      username : '',
      password : '',
    }
  },
  methods : {
    submitForm : function() {
      //event.preventDefault(); submit์‹œ, ์ƒˆ๋กœ๊ณ ์นจ์„ ๋ง‰๋Š” ๊ธฐ๋Šฅ(๋ฐ”๋‹๋ผjs)
      //vue๋Š” form์— .prevent ์ฒ˜๋ฆฌ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
      console.log(this.username, this.password);

      var url = 'https://jsonplaceholder.typicode.com/users';
      var data = {
        username : this.username,
        password : this.password
      }
      //http ํ†ต์‹  ๋ฐฉ์‹ + post ๋ฐฉ์‹
      axios.post(url, data)
      .then(function(response) {
        console.log(response);
      })
      .catch(function(error) {
        console.log(error)
      });
    }
  }
}
</script>

<style>

</style>

 

๊ฒฐ๊ณผ(response)