Vueがtodoアプリケーションを実現する例

2786 ワード

背景
まず声明します。私は前端の大神ではありません。私の前の内容を見たら、後端を作るのが得意です。先端が少し邪魔しますが、精通というほどではありません。このシリーズを書く目的はただ好奇心があって、どうして数年前までJQueryが天下の先端を統一していたのかが気になります。なぜこんなに混乱していたのか、よく知りたいです。では、vueがどうやって実現されているかを知ると、先端に少し意識ができているのではないかという思いが促されて、このシリーズができました。
ここでvueを模仿するというのは私がvueのソースコードを読んでからvueを模仿して书いたのではなく、文法やvueの文法を実现するために自分で工夫して実现しました。vueを参考にしてもいいです。でも、私の先端のレベルでvueの難しさが分かります。少しjsをつけて、またvueのソースコードに対して手のつけようがないですが、どうやってvueと同じ機能を実現するかを知りたいです。一緒にソースを見ないで、自分で考えて簡単なvueを実現します。
vueはtodoアプリケーションを実現します
このシリーズのアイデアは、vueを使って簡単なアプリケーションを実現し、vue関連の核心機能を使って、コードを変えずに、vue.jsファイルを私達自身の実現に変えて、最終的にはvueと同じ効果を達成します。ここでvueを使って超簡単なtodoアプリケーションを実現します。コードは以下の通りです。

<html>  
<head>  
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>  
</head>  
<body>  
    <div id="app">  
        <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>  
    <script>  
        var appx = new Vue({  
            el: '#app',  
            data: {  
                newTodo: '',  
                todos: []  
            },  
            methods: {  
                addTodo: function () {  
                    this.todos.push({ text: this.newTodo });  
                    this.newTodo = '';  
                },  
                deleteTodo: function (index) {  
                    this.todos.splice(index, 1);  
                }  
            }  
        })  
    </script>  
</body>  
</html>  
効果は以下の通りです
  • 入力枠の値が変化した場合、入力枠の下に入力された内容が表示されます(プレゼンテーション効果のためだけに、実際の意味を無視します)。
  • 新しいtodoを入力すると、以下のリスト項目が多くなります。
  • リスト項目右削除ボタンをクリックすると、現在のリスト項目
  • を削除できます。
    デモは簡単ですが、vueのすべての核心機能が含まれています。
  • 双方向値バインディング(v-model)
  • 応答式では、値が変化し、バインディングされたノード値も同期して変化する
  • イベント応答(v-on:click)
  • 循環命令(v-for)
  • 後の章では、私たちはvue.jsファイルを導入しないで、一歩ずつ同じ機能を実現します。
    以上がVueがtodoアプリケーションを実現する例の詳細です。VueがTodoアプリケーションを実現するための資料について、他の関連記事に注目してください。