본문 바로가기

Vue.js

[Udemy Vue 완벽가이드 Section1] 5. JavaScript만으로 첫번째 앱 만들기

JavaScript만으로 위와같이 input칸에 입력을 하고, 'Add Goal'버튼을 누르면 아래에 입력값이 나오도록 하는 간단한 앱을 만들어보자.

 

 

index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>A First App</title>
    <link rel="stylesheet" href="styles.css" />
  </head>
  <body>
    <div id="app">
      <div>
        <label for="goal">Goal</label>
        <input type="text" id="goal" />
        <button>Add Goal</button>
      </div>
      <ul>
       
      </ul>
    </div>
    <script src="app.js"></script>
  </body>
</html>

 

html코드를 보면 body요소 안에 input, button, 그리고 ul태그가 있고,

자바스크립트 파일인 app.js를 연결시켜주었다.

 

 

js코드에서는

app.js

const buttonEl = document.querySelector('button'); //button태그에 접근
const inputEl = document.querySelector('input'); //input태그에 접근
const listEl = document.querySelector('ul'); //ul태그에 접근

function addGoal() {
  const enteredValue = inputEl.value; //1.input태그에 입력값을 가져온다. value프로퍼티를 갖는다.
  //순수 JS로, JS에 내장되어있다. 사용자가 input에 입력한 값을 추출한다.
  const listItemEl = document.createElement('li'); //2.li요소를 생성한다. 브라우저에 내장된 메서드. JS로 새 DOM요소를 프로그래밍 방식으로 생성하게 한다.
  listItemEl.textContent = enteredValue; //3.생성한 li요소에 input태그에 입력한 값을 추가. 텍스트내용을 설정. <li></li>안에 내용 설정.
  listEl.appendChild(listItemEl); //4.input에 입력한 값을 추가한 li요소를 ul태그의 마지막 자식요소로 추가한다.(그래서 추가하면 리스트 마지막에 추가된다)
  //appendChild대신, append해도된다.
  inputEl.value = '';//5.input태그의 입력값은 빈 문자열로 변경한다.
}

buttonEl.addEventListener('click', addGoal);//두번째 인자는 click이 발생할때 실행되는 함수.button을 'click'하면 addGoal함수가 실행된다.

 

 

** 출처: 모든 내용은 Udemy Vue-완벽가이드 강의를 기반으로 작성하였습니다.