■ はじめに
簡単な ToDo リストの作成を通して、 Vue + TypeScript について学ぶ。
目次
【1】サンプル 【2】はまったポイント その1:バインドできない
【1】サンプル
todo.vue
<template> <div> <h1>Todo List</h1> <input type="text" placeholder="Input your ToDo!" @keyup.enter="onEnter"> <div v-if="this.toDoList.length > 0">{{ this.toDoList.length }} 件を表示</div> <ul> <li v-for="(toDo, index) in this.toDoList" :key="toDo.title"> {{ index }} - {{ toDo.title }} </li> </ul> </div> </template> <script lang='ts'> import { Component, Vue } from 'vue-property-decorator'; interface ToDo { title: string; } @Component export default class Hello extends Vue { private toDoList: ToDo[] = new Array<ToDo>(); public onEnter(event: Event): void { if (event.target instanceof HTMLInputElement) { const tagetValue = event.target.value; console.log(`onEnter ${tagetValue}`); this.toDoList.push({ title: tagetValue }); } } } </script>
【2】はまったポイント
その1:バインドできない
* 以下だとバインドできなかった
バインドできなかった例
@Component export default class Hello extends Vue { private toDoList!: ToDo[]; public created() { this.toDoList = new Array<ToDo>(); }
参考文献
https://qiita.com/Nossa/items/b2e38bea4bda87a1de12
関連記事
Vue ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/04/30/000000