HTML 코드 당, 하나의 앱만 사용해야 한다.
Vue앱을 HTML코드의 DOM내 특정 위치에 마운트할때면, 해당 HTML 드 부분을 Vue앱의 템플릿으로 지정하게 된다.
즉, 아래 부분이 첫번째 Vue앱의 템플릿이 되는 셈이다.
<section id="app">
<h2>How Vue Works</h2>
<input type="text" @input="saveInput">
<button @click="setText">Set Text</button>
<p>{{ message }}</p>
</section>
해당 섹션의 #app 선택자를 통해 마운트 되었다.
앱에서 템플릿을 정의하는 방법에는 여러가지가 있다.
HTML코드를 작성하고, 애플리케이션을 #app2에 mount하는 방식이 가장 쉽다. 하지만 template을 추가하는 유일한 방법은 아니다.
Vue앱에 템플릿을 추가할때, app configuartion object에 template option을 추가하여 사용할 수 있다.
const app2 = Vue.createApp({ //이 object가 app configuration object
template: '',
data() {
},
})
이 template option은 string이 들어간다.
const app2 = Vue.createApp({
template: `
<p>{{ favoriteMeal }}</p>
`,//multi-line으로 쓰고싶어 backtick사용
data() {
},
})
해당 섹션을 제어하도록 설정했으면, 그 안에 있는 모든 것이 template이다. 단지, template 정의하는 방법을 다르게 했을 뿐.
<section id="app2"> //이 안에 있는 것들은 전부 template.
</section>
여전히 app2.mount('#app2')는 필요하다. 그래야 favoriteMeal의 실제 값이 화면에 렌더링될 때, 어떤 위치에 템플릿이 표시되어야하는지 알 수 있기 때문. 마운트 작업이 없으면 Vue가 해당 문단을 어떤 페이지에 표시해야하는지 알 수 없다.
template option을 사용하지 않은, 이전 방식과 동일하게 출력된다. 단지, 템플릿을 정의하는 방식만 달라진 것.
굳이 이렇게 문자열 기반의 template을 쓸 필요는 없다.
이 방식을 통해서도 Vue앱을 통해 제어되는 HTML 부분의 모든 콘텐츠를 해당 앱의 템플릿으로 지정할 수 있다.
'Vue.js' 카테고리의 다른 글
[Udemy Vue 완벽가이드 Section1] 4. Vue 대안 알아보기 (0) | 2023.06.17 |
---|---|
[Udemy Vue 완벽가이드 Section1] 2. 'Vue.js'란 무엇인가? (2) | 2023.06.16 |
[Udemy Vue 완벽가이드 Section5] 62. 하나의 앱 vs 여러 앱 (0) | 2023.01.29 |
[Udemy Vue 완벽가이드 Section5] 61. Vue 반응성 심층 분석 (0) | 2023.01.29 |
[Udemy Vue 완벽가이드 Section5] 60. Vue의 반응성 소개 (0) | 2023.01.29 |