본문 바로가기
Front-End/Vue.js

[2021-09-01] 1 ~ 9 강

by seoyamin 2021. 9. 2.

1. <div id="app"> </div>

- index.html 파일에서 app 이라는 이름의 id를 가진 Vue 객체를 app.js 파일에서 정의해준다. 

    const app  = new Vue.createApp({

 

- app.js 파일에서 정의된 객체 app 안에는 data() { 여기 안에 } 객체 app의 다양한 속성(properties)들을 담을 수 있다.

   const app = Vue.createApp({

      data() {

        return {

            title: 'The Final Empire',

            author: 'Brandon Sanderson',

            age: 45

        }

    }

})

 

- index.html 파일에서 속성변수들의 값을 가져와서 브라우저에 보여줄 때는 {{ 변수 이름 }} 형태로 소환하면 된다.

  (단, <div id="app"> 태그 안에서만 소환 가능)  

<div id="app">

        <p>{{ title }} - {{ author }} - {{ age }}</p>

    </div>

 

 (1) index.html

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Learning  Vue</title>
    <script src="https://unpkg.com/vue@3.0.2"></script>
</head>
<body>
    <h1>Hello, Vue :)</h1>

    <div id="app">
        <p>{{ title }} - {{ author }} - {{ age }}</p>
    </div>
        
    <script src="app.js"></script>

</body>
</html>

(2) app.js

const app = Vue.createApp({
    data() {
        return {
            title: 'The Final Empire',
            author: 'Brandon Sanderson',
            age: 45
        }
    }
})

app.mount('#app')

 

2. directive ;  v-on

- directive : 버튼 등의 태그 안에 끼어 들어가서 동적으로 사용자의 동작에 따라 변화하는 요소를 만드는 것

 

- 형태: v-on: click ="age++" ( click시 age가 1씩 증가한다.) 

  ※ 이때 " " 안에는 완전한 javaScript 언어로 작성한다. ( 따라서 변수도 {{ }} 필요없이 바로 age 이렇게 쓴다.)

 

- @ = v-on:  (v-on:click="age++"  =  @click="age++")

 

 

- [ directive를 활용하여 객체 app의 함수 사용하기 ]

 (1) app.js 파일의 const app 정의 부분에서 data() { ... }는 app의 속성을 정의하는 테두리였다.

     app이 사용할 함수들을 정의하는 테두리는 methods: { ... }이다. 객체 app만의 함수를 {...}안에 정의한다. 

     이때 함수를 정의할 때 사용하는 app 객체의 속성 변수명은 this.변수명 으로 사용해야한다.

   <app.js ↓>

const app = Vue.createApp({
    data() {
        return {
            title: 'The Final Empire',
            author: 'Brandon Sanderson',
            age: 45
        }
    },
    methods: {
        changeTitle() {
            this.title = 'Words of Randiance'
        }
    }


})

app.mount('#app')

(2) index.html 에서 app.js의 methods에서 정의한 app 객체의 함수를 사용하는 방법은 다음과 같다. 

     <div @click=" 함수이름 or 함수이름(투입값) ">Change book title(클릭할 텍스트)</div>

 

   - 이것도 app 객체의 함수를 불러오는 것이므로 속성때와 마찬가지로 <div id="app"> </div> 태그 안에 있어야 한다.

 

   - 만약 투입값(argument)을 가져오는 함수를 정의할 경우는 다음과 같다.

 

     [ app.js ]

       methods: {

          changeTitle(title) {

               this.title = title

          }

 

      [ index.html ]

       <div @click="changeTitle(Happy)">Change book title</div>

       :  Change book title 텍스트를 클릭하면 app의 원래 title변수의 값 Happy로 변경됨.

'Front-End > Vue.js' 카테고리의 다른 글

[2021-09-05] 12~27강  (0) 2021.09.07
[2021-09-02] 10 ~ 11강  (0) 2021.09.03