Vue で ToDo アプリケーションを実装する例

Vue で ToDo アプリケーションを実装する例

背景

まず最初に、私はフロントエンド開発の専門家ではないことを述べておきたいと思います。私の以前のコンテンツを読んだことがあるなら、私がバックエンド開発が得意であることはご存知でしょう。フロントエンド開発の経験は多少ありますが、熟練しているとは言えず、ほとんど精通していません。このシリーズを書く目的は、単純に好奇心からです。数年前は JQuery が主流だったフロントエンドの状況が、なぜ今こんなにも混沌としているのか、なぜ js が、その母体さえも認識できないほどひどく弄ばれているのか、興味があります。エントリー ポイントとして vue を選んだ理由は、vue がシンプルで、基本的にデモを見るだけで始められるからです。vue は 3 大人気のフロントエンド フレームワークの 1 つなので、vue の実装方法さえ理解していれば、フロントエンドについて少しは理解できます。このアイデアに駆り立てられて、このシリーズが作成されました。

ここでの Vue の真似は、Vue のソースコードを読んで理解した上で、Vue を真似て書くということではありません。構文は V​​ue の構文のままですが、自分で実装する方法を見つけます。もちろん、Vue を参考にすることもできますが、フロントエンド レベルの私にとって、Vue を完全に理解するのは少し難しいです。したがって、Vue ソースコードの実装を理解したい場合、このシリーズは適していません。ただし、私のように、JS を少し知っていて、Vue ソースコードのどこから始めればよいかわからないが、Vue と同じ機能を実装する方法を知りたい場合は、私に従ってください。ソースコードを見るのではなく、自分で簡単な Vue を実装する方法を見つけます。

Vue ToDo アプリケーション

このシリーズのアイディアは、Vue を使用して簡単なアプリケーションを実装し、アプリケーション内で Vue 関連のコア機能を使用し、コードは変更せずに vue.js ファイルを独自の実装に置き換え、最終的に Vue と同じ効果を実現することです。ここでは、vue を使用して非常にシンプルな ToDo アプリケーションを実装します。コードは次のとおりです。

<html>
  <ヘッド>
      <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  </head>
  <本文>
      <div id="アプリ">
          <input v-model="newTodo"></input>
          <button v-on:click="addTodo()">追加</button>
          <div>入力テキスト:{{newTodo}}</div>
          <ul>
              <div v-for="(todo,index) in todos" style="margin-bottom: 20px;">
                  <li style="float: left;margin-right: 20px;">
                      {{todo.text}}
                  </li>
                  <button v-on:click="deleteTodo(index)">削除</button>
              </div>
          </ul>
      </div>
      <スクリプト>
          var appx = 新しいVue({
              el: '#app',
              データ: {
                  新しいToDo: ''、
                  すべて: []
              },
              メソッド: {
                  追加Todo: 関数() {
                      this.todos.push({ テキスト: this.newTodo });
                      this.newTodo = '';
                  },
                  deleteTodo: 関数 (インデックス) {
                      this.todos.splice(インデックス、1);
                  }
              }
          })
      </スクリプト>
  </本文>
  </html>

効果は以下のとおりです。

  • 入力ボックスの値が変わると、入力内容が入力ボックスの下に表示されます(デモンストレーション効果のため、実際の意味は無視されます)
  • 新しいToDoを入力するたびに、下にリスト項目が1つ追加されます。
  • 現在のリスト項目を削除するには、リスト項目の右側にある削除ボタンをクリックします。

デモはシンプルですが、Vue のコア機能がすべて含まれています。

  • 双方向値バインディング (v-model)
  • 応答性が高く、値が変化すると、バインドされたノードの値も同期して変化します。
  • イベント応答 (v-on:click)
  • ループ命令 (v-for)

次の章では、vue.js ファイルを紹介せず、同じ機能を段階的に実装していきます。

以上がVueでtodoアプリケーションを実装した例の詳細です。Vueでtodoアプリケーションを実装することの詳細については、123WORDPRESS.COMの他の関連記事に注目してください!

以下もご興味があるかもしれません:
  • VueCli3+TypeScript+Vuex を使用して todoList を段階的に構築する方法
  • vuex のシンプルな todolist の例の詳細な説明
  • todoList プロジェクトを実装するために webpack4 を使用して Vue 開発環境を手動で構築する方法
  • Vueはtodolistの基本機能とデータ保存機能の例を実装します
  • Vue 親子コンポーネント通信を使用して ToDo リスト機能を実装するためのサンプル コード
  • Vue は ToDo リストの削除機能を実装します
  • Vue での親子コンポーネント通信における todolist コンポーネント機能の開発
  • vue todo-list コンポーネントを npm に公開する方法
  • Vue コンポーネント記述における todolist コンポーネント例の詳細な説明
  • Vue を使用してシンプルな ToDo リストを完成させる方法

<<:  Linux でスワップ領域を確認する 5 つのコマンドの概要

>>:  MySQLテーブルの自動インクリメント列の初期値をリセットする方法

推薦する

react+antdプロジェクトをゼロから構築する方法を教えます

これまでの記事はすべて私自身の学習記録であり、主に以前に遭遇した落とし穴を忘れないようにするためのも...

MySQLのSQLモードの特徴のまとめ

序文SQL モードは、MySQL がサポートする SQL 構文と、実行されるデータ検証チェックに影響...

JSはじゃんけんゲームを実装します

この記事の例では、じゃんけんゲームを実装するためのJSの具体的なコードを参考までに共有しています。具...

ORM を使用して MySQL にデータを追加する手順

【序文】 ORM を使用してデータベース内のデータを操作する場合、前提として、新しい ORM モデル...

CSS XTHML の記述標準とよくある問題の概要 (ページ最適化)

プロジェクトドキュメントディレクトリDiv+CSS 命名規則 - 4 - Div+css 命名規則 ...

Alibaba Cloud Ubuntu 16.04 が IPSec サービスを構築

IPSec の概要IPSec (インターネット プロトコル セキュリティ): ネットワーク層と適用さ...

要素テーブルヘッダー行の高さの問題の解決

目次序文1. 問題の原因2. 解決策VueはelementUIテーブルtr thの高さと背景色を変更...

SQLのさまざまな結合サマリーの詳細な説明

SQL 左結合、右結合、内部結合、自然結合 さまざまな結合の概要SQL には、左結合、右結合、内部結...

リクエスト数を制限するために Ajax 同時リクエストを実装するために js を使用するサンプル コード

問題の説明: 非同期リクエストの数が不確定な場合、数百の http リクエストが瞬時に発生したときに...

HTML 5.1 学習: 14 の新機能とアプリケーション例

序文ご存知のとおり、HTML5 はインターネット コミュニティ全体に標準を提供する組織である Wor...

JS でシンプルな画像カルーセル効果を実現

この記事では、シンプルな画像カルーセル効果を実現するためのJSの具体的なコードを参考までに紹介します...

NestJsはMongooseを使用してMongoDBを操作する

最近、NestJs フレームワークを学び始めました。学習コストは他のフレームワークよりもはるかに高く...

JavaScript Reduceの詳しい説明

目次地図フィルターいくつかの毎インデックスを検索パイプ参考回答1. パラメータを受け入れる関数を返す...

Docker tomcatのメモリサイズを設定する方法

Docker に Tomcat をインストールする場合、大きなファイルをダウンロードするときなど、場...

MySQLデータファイルの保存場所を表示する方法

次のような疑問が湧くかもしれません。MySQLをローカル (自分のコンピュータ) にインストールした...