【TypeScript × Nuxt.js】연습이 테라 초간이 ToDo 앱 만들었습니다【입문】

TypeScirpt의 기본 구문을 한 번에 배웠으므로 Nuxt.js와 함께 초간이 ToDo 앱을 만들었습니다.

또 이번 Composition-API에도 도전했습니다.

개발 환경


  • macOS Catalina 10.15.7
  • @nuxt/cli v2.14.7
  • npm 6.9.0
  • node v10.16.0
  • TypeScript 4.1.3
  • @nuxtjs/composition-api 0.20.2

  • 완제품



    index.vue <template> <div class="container"> <h1>Nuxt-ToDo-App</h1> <br /> <h3> <form @submit.prevent="addTask()"> Add Task : <input v-model="task" type="text" /> </form> <br /><br /> <table> <tbody> <tr v-for="(task, index) in tasks" :key="task.id"> <td :class="{ done: task.isDone }">{{ task.name }}</td> <td v-if="task.isDone" class="pointer" @click="task.isDone = !task.isDone" > [제] </td> <td v-else class="pointer" @click="task.isDone = !task.isDone"> [미] </td> <td class="pointer" @click="removeTask(index)">[x]</td> <br /> <br /> </tr> </tbody> </table> </h3> </div> </template> <script lang="ts"> import { defineComponent, reactive, toRefs } from '@nuxtjs/composition-api' interface Task { name: string isDone: boolean } export default defineComponent({ setup() { const state = reactive({ task: '', tasks: [] as Task[], }) const addTask = () => { const taskObj: Task = { name: state.task, isDone: false } state.tasks.push(taskObj) state.task = '' } const removeTask = (index: number) => { state.tasks.splice(index, 1) } return { ...toRefs(state), addTask, removeTask, } }, }) </script> <style> .container { text-align: center; } 테이블 { margin: 0 auto; } .done { text-decoration: line-through 3px; } .pointer { cursor: pointer; } </style> TypeScript × Nuxt.js × compositon-API의 기사는 지금은 아직 적지요 뭔가 좋은 교재가 있으면 좋지만 ...

    좋은 웹페이지 즐겨찾기