Vue.js 定義した文字列を仮想DOMで表示する
こちらはアンテクアドベントカレンダー2021の記事ですhttps://adventar.org/calendars/6534
皆さんこんにちは、サーバーサイドエンジニアの大川です。前回「Vue.jsの始め方」について記載しました。
今回は前回の記事で使用したソースを解説しつつVueで定義した文字列を仮想DOM側で表示する方法をまとめます。仮想DOMがなんだかわからないよ〜という方は「script要素内のVueで定義した文字列をbody要素内に表示するんだな〜」くらいに思っておいてください!
前回のソース
まずは前回記載したindex.htmlファイルのソースを下記に記載します。
<!DOCTYPE html>
<html lang="ja">
<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">
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<title>Document</title>
</head>
<body>
<header></header>
<main>
<div id="app">
{{ message }}
</div>
</main>
<footer></footer>
<script>
let app = new Vue({
el: '#app',
data(){
return {
message: 'Hello Japan'
}
},
})
</script>
</body>
</html>
- 上記ファイルをブラウザで開くと下記のように表示されます。
前回のソース
まずはmain要素内部から見てゆきましょう!下記にmain要素内部のソースを記載します。
<div id="app">
{{ message }}
</div>
div要素にid「app」を設定してその中にマスタッシュ構文でvueのmessageの内容を表示するように指定しています。
次にscript要素内を見てゆきましょう!下記にscript要素のソースを記載します。
<script>
let app = new Vue({
el: '#app',
data(){
return {
message: 'Hello Japan'
}
},
})
</script>
変数appを定義して、その中にインスタンス化したvueを格納しています。
インスタンス化されているvueのソースではelオプションを用いてmain要素内部の範囲(今回で言う所のdiv要素のid名)を指定しています。
dataメソッドでキーであるmessage:を定義して値は「Hello Japan」を格納しています。
この2つの要素でvueで記載した文字列が画面に表示されていたということです!
最後に
以上で準備時に記載したソースの解説は以上です!次回はいよいよ本格的にVueのソースを記載してゆこうと思います!