본문 바로가기
개념정리/Vue.js

[Vue.js] 여러 개의 Vue 인스턴스 사용하기

by lanuarius19 2022. 4. 26.
728x90

 

Vue.js 여러 개의 Vue 인스턴스 사용하기

 

코드

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>뷰 여러 개의 Vue 인스턴스 사용하기</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        {{ name }}<br>
        <button @click="changeText">Click!</button>
    </div>
    
    <hr>
    
    <div id="app-2">
        {{ name }}<br>
        <button @click="changeText">Click!</button>
    </div>
    <script>
        new Vue({
           el: '#app',
            data: {
                name: 'Jang'
            },
            methods: {
                changeText() {
                    this.name = 'Jang-change'
                }
            }
        })
        
        new Vue({
           el: '#app-2',
            data: {
                name: 'Lee'
            },
            methods: {
                changeText() {
                    this.name = 'Lee-change'
                }
            }
        })
    </script>
</body>
</html>

 

 

실행 결과

 


 

코드 - 다른 Vue 인스턴스 제어하기

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>뷰 여러 개의 Vue 인스턴스 사용하기</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        {{ name }}<br>
        <button @click="changeText">Click!</button>
    </div>
    
    <hr>
    
    <div id="app-2">
        {{ name }}<br>
        <button @click="changeText">Click!</button>
    </div>
    <script>
        const app = new Vue({
           el: '#app',
            data: {
                name: 'Jang'
            },
            methods: {
                changeText() {
                    app2.name = 'Jang-change'
                }
            }
        })
        
        const app2 = new Vue({
           el: '#app-2',
            data: {
                name: 'Lee'
            },
            methods: {
                changeText() {
                    this.name = 'Lee-change'
                }
            }
        })
    </script>
</body>
</html>

 

실행 결과

 

 


 

this 대신 Vue 인스턴스가 담긴 변수의 이름 넣기

 

const app = new Vue({
           el: '#app',
            data: {
                name: 'Jang'
            },
            methods: {
                changeText() {
                    this.name = 'Jang-change' // --> app2.name = 'Jang-change'
                }
            }
        })

위의 코드에서 this.name app의 data의 name을 가리킨다.

이를 app2.name 으로 적는다면 app2 Vue 인스턴스의 data의 name을 가리키게 된다.

 

※var, let, const 차이점

var
let
const
재선언
O
X
X
재할당
O
O
X

 

 

변수 재선언

 

var a = 10;
var a = 5;
console.log(a); // 5 (재선언 가능)

let b = 20;
let b = 10; // Uncaught SyntaxError: Identifier 'b' has already been declared

const b = 30;
const b = 15; // Uncaught SyntaxError: Identifier 'b' has already been declared

 

 

변수 재할당

 

var a = 10;
a = 5; // 5 (재할당 가능)

let b = 20;
b = 10; // 10 (재할당 가능)

const c = 30;
c = 15; // Uncaught TypeError: Assignment to constant variable.
728x90

댓글