【Django】Vue.jsを触ってみる
初期値から1秒ごとに1ずつ増えていくアプリです。初期値はviewsから引っ張ってくることとします。
ソースコード
scriptはvue.jsのチュートリアルを参考にしています。
test.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"> <title>Document</title> <script src="https://unpkg.com/vue@next"></script> <script src="https://cdn.jsdelivr.net/npm/js-cookie@3.0.0/dist/js.cookie.min.js"></script> </head> <body> <h1>This is test page</h1> <p>{{test_text}}</p> <br> <div id="counter"> Counter: [[ counter ]] </div> <script> const Counter = { data() { return { counter: {{ counter_init }} # ここ } }, mounted() { setInterval(() => { this.counter++ }, 1000) }, delimiters: ['[[', ']]'] } Vue.createApp( Counter ).mount('#counter') </script> </body> </html>
views.py
from django.views.generic import TemplateView from django.shortcuts import render class Test(TemplateView): template_name = 'test.html' def test(self): context = { 'test_text': "This is Django test text!", 'counter_init': 100 } return render(self, 'test.html', context)
結果
アクセスするとCounterが100から1秒ごとに1ずつ増えていくのを確認できました。
以上、お疲れ様でした。