2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Vue.jsだけでTODO機能を作ってみる

Last updated at Posted at 2020-06-22

Javascriptだけで簡単なTodo機能は実装できるので備忘録

環境

node.js 13.10.1
vue/cli 4.4.4

完成品

タスクの追加、削除、チェックができる
Image from Gyazo

必要なツールの導入

まずVue/Cliとnode.jsをPCにインストールする必要がある。
説明は割愛。

プロジェクトの作成

以下のコマンドを打つ

$vue create プロジェクト名

$cd プロジェクト名
$npm run serve

こんな画面が出たらOK

Image from Gyazo

コンポーネント作成

・src/componentsディレクトリに任意のファイル作成
・views/Home.vueディレクトリに上記のファイルを読み込ませる

Home.vue
import HelloNuxt from '@/components/HelloNuxt.vue'

下準備OK

ファイル編集

大きくいじったのはこの二つ

components/HelloNuxt.vue
<template>
  <div>
    <form v-on:submit.prevent> 
      <h2>TODO LIST</h2>
      <input type="text" v-model="newItem">
      <button v-on:click="add">
        追加
      </button>
    </form>
    <ul>
      <li v-for="(todo, index) in todos">
        <input type="checkbox" v-model="todo.isDone">
        <span v-bind:class="{ done: todo.isDone }">{{ todo.item }}</span>
        <button v-on:click="deleteItem(index)">消去</button>
      </li>
    </ul>
    <p>{{ newItem }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      newItem: '',
      todos: []
    }
  },

  methods: {
    add: function(event) {
      if (this.newItem == '') return;
      const todo = {
        item: this.newItem,
        isDone: false
      };

      this.todos.push(todo);
      this.newItem = '';
    },

    deleteItem: function(index) {
      this.todos.splice(index, 1)
    }
  }
}
</script>

<style scoped>

</style>

views/Home.vue
<template>
  <div class="home">
    <HelloNuxt/>
    <!-- <HelloWorld/> -->
  </div>
</template>

<script>
// @ is an alias to /src
import HelloNuxt from '@/components/HelloNuxt.vue'
import HelloWorld from '@/components/HelloWorld.vue'

export default {
  name: 'Home',
  components: {
    HelloNuxt,
    HelloWorld
  }
}
</script>
2
3
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?