2. multiple vue instances
first
index.html
<!doctype html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Vue</title>
</head>
<body>
<!-- app class를 가진 요소가 2개 -->
<div class="app">
{{ firstName }}
{{ lastName }}
</div>
<div class="app"> <!-- 2번째 app class 요소에는 vue instance가 mount되지 않는다. -->
{{ firstName }}
{{ lastName }}
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/3.4.6/vue.global.prod.min.js"></script>
<script src="app.js"></script>
</body>
</html>
app.js
Vue.createApp({
data() {
return {
firstName: 'John',
lastName: 'Doe',
}
}
}).mount('.app'); // class=app 요소에 mount
main.css
second
아래와 같이 2개의 App을 mount 시키면, Vue Dev Tools에서도 2개의 App이 확인된다.
index.html
<!doctype html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Vue</title>
</head>
<body>
<!-- id=app, id=app2 요소를 각각 만들자 -->
<div id="app">
{{ firstName }}
{{ lastName }}
</div>
<div id="app2">
{{ firstName }}
{{ lastName }}
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/3.4.6/vue.global.prod.min.js"></script>
<script src="app.js"></script>
</body>
</html>
app.js
// 2개의 Vue instance를 생성해 각 요소에 mount 시킨다.
Vue.createApp({
data() {
return {
firstName: 'John',
lastName: 'Doe',
}
}
}).mount('#app');
Vue.createApp({
data() {
return {
firstName: 'hyungju',
lastName: 'Lee',
}
}
}).mount('#app2');
main.css