김루트
EVOLUTION COMPLETE!
김루트
전체 방문자
오늘
어제
  • 분류 전체보기 (45)
    • Dev (37)
      • Vue (5)
      • Python (0)
      • 알고리즘 (0)
      • javascript (5)
      • JAVA (11)
      • Mysql (6)
      • git (3)
      • Error List (6)
    • 인터넷정보 (0)
    • Utility (1)
    • 관련자료 (2)
    • 제품리뷰 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 글 작성시 키보드 입력이 늦어지는 현상

인기 글

태그

  • router-view
  • 김루트
  • router-link
  • 함수
  • 파이썬 파일추가
  • 파이썬 파일다루기
  • Vue.js
  • 파이썬 with
  • 람다
  • 파이썬 파일쓰기
  • 파이썬 파일읽기
  • Vue
  • Vue공부
  • 파이썬
  • 파이썬 open

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
김루트

EVOLUTION COMPLETE!

Vue - v-on
Dev/Vue

Vue - v-on

2022. 5. 13. 17:51

 

굉장히 오랜만에 포스팅을 진행해봅니다. 온가족이 코로나에 걸리는 바람에 정말 끙끙 앓고 후유증 때문에 몇주를 고생하다가 정상 컨디션으로 돌아오고 다시 공부를 시작하려고 합니다.

 

보통 사용자 화면에서 클릭을 한다거나 키보드를 입력할 때 이벤트를 발생시키는 경우가 많습니다. input태그에 문자를 작성한다던지 엔터를 친다던지 버튼을 클릭한다 던지 등등

여러가지 케이스들이 많은데 오늘은 이 이벤트들이 작동할 수 있도록 해보겠습니다.

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
   <div id="app">
       
   </div> 

   <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   <script>
       new Vue({
           el: '#app',
           methods: {
               logText: function() {
                   console.log('clicked')
               }
           }
       })
   </script>
</body>
</html>

우선 늘 하던대로 기본 html과 vue인스턴스를 생성해줍니다.

이번엔 내부에 methods : {} 라는걸 생성했고 그 내부에 logText를 만들었습니다.

 

이제 body 태그 내부에 있는 div#app 내부에 button을 하나 간단하게 생성해보도록 하겠습니다.

<button v-on:click="logText">click me</button>

보시면 일반 버튼인데 v-on:clikc="logText"라는 속성이 포함되어 있습니다.

이 부분은 v-on이라는 디렉티브를 이용해서 이벤트를 작동시키기 위함인데요.

보시다시피 클릭 했을 때 logText를 실행하도록 되어있습니다.

 

vue 인스턴스를 생성할때 methods 내부에 logText라고 설정해두었죠 ?

정상적으로 작동하게 된다면 여러분들의 콘솔창에 clicked라고 표시되어야 합니다. 어서 확인해보세요. 

네 저는 정상적으로 들어왔습니다. 이런식으로 v-on을 이용해서 클릭이벤트를 사용할 수 있습니다.

또 다른 방식으로도 사용할 수 있습니다.

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
   <div id="app">
       <button v-on:click="logText">click me</button>
       <input type="text" v-on:keyup.enter="logText">
   </div> 

   <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   <script>
       new Vue({
           el: '#app',
           methods: {
               logText: function() {
                   console.log('clicked')
               }
           }
       })
   </script>
</body>
</html>

button태그 바로 아래 input text를 하나 만들어주고 그 속성으로 v-on:keyup.enter="logText"라고 주었습니다.

해당 속성은 현재 포커스가 input에 있는 상태에서 사용자 키보드에서 enter를 입력 받으면 logText 함수를 호출하도록 되어있습니다.

 

여러분들도 서버를 재시작 해보시고 테스트 해보세요.

 

버튼도 눌러보고 input에 문자를 입력하고 엔터키를 눌러봤을 때 정상적으로 logText함수가 실행되면서 로그가 보여지네요.

 

아무래도 사용자가 로그인이나 검색처럼 무엇인가를 입력하고 바로 엔터를 첬을 때 프로세스가 실행되게 끔하는 방식으로 많이 사용되지 않을까 생각해봅니다 ㅎㅎ

 

여기까지 v-on에 관련된 내용을 정리해봤습니다. v-on은 위 내용만 있는게 아니라 분명히 다른 내용들도 있기 때문에 공부할 때마다 틈틈히 업데이트 하도록 하겠습니다 ㅎㅎ

 

감사합니다~

저작자표시

'Dev > Vue' 카테고리의 다른 글

Vue - computed로 클래스 조작  (0) 2022.05.31
Vue - watch  (0) 2022.05.31
Vue - 엑시오스(axios)  (0) 2022.04.25
Vue - 라우터 링크[router-link]  (0) 2022.04.13
    'Dev/Vue' 카테고리의 다른 글
    • Vue - computed로 클래스 조작
    • Vue - watch
    • Vue - 엑시오스(axios)
    • Vue - 라우터 링크[router-link]
    김루트
    김루트
    방문해주셔서 감사합니다:)

    티스토리툴바