Vueのカスタムイベントコンテンツ配信の詳細な説明

Vueのカスタムイベントコンテンツ配信の詳細な説明

1. これは理解するのが少し複雑なので、原理を注意深く読んで自分で入力していただければ幸いです。

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
    <メタ文字セット="UTF-8">
    <title>タイトル</title>
</head>
<本文>

<div id="アプリ">
    <やること>
        <xian slot="xian" :title="タイトル"></xian>
        // 後ろから前へ読んで、トラバースされた値が v-bind に割り当てられ、v-bind の値が props 内の同じ名前の値に割り当てられることを理解することをお勧めします // [注意] v-on: バインドされたカスタム イベント名は自動的に小文字になります。大文字のイベント名を使用すると、次の this.$emit は大文字のままになり、バインドされません <yu slot="yu" v-for="(item,index) in items"
            v-bind:item="アイテム" v-bind:index="インデックス"
            v-on:remove="deleteItems(index)"></yu>
        // Vue インスタンスはデータとメソッドを View レイヤーにバインドし、View レイヤーはこれらのデータとメソッドを下位のコンポーネントに配布してバインドします。View は、Vue インスタンスのデータとメソッドを制御用のコンポーネントに転送することと同じです</todo>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<スクリプト>
    Vue.component("todo",{
       テンプレート: '<div>\
                        <スロット名="xian"></スロット>\
                        <ul>\
                            <スロット名="yu"></スロット>\
                        </ul>\
                    </div>'
    });
    Vue.component("xian",{
        プロパティ: ['タイトル'],
        テンプレート: '<div>{{title}}</div>'
    });
    Vue.component("yu",{// props は、変数名と同様に、任意に定義できるパラメータ名です。v-bind は、データと定義された変数 props: ['item', 'index'] である変数にバインドします。
        // 現在のコンポーネント テンプレートのメソッドのみをバインドできます: '<li>{{index}}---->{{item}'',button @click="remove">delete</button></li>',
        メソッド: {
            削除: 関数 (インデックス) {
                // this.$emit カスタム イベント配布 // [注] this.$emit('event name') では、キャメルケースではなく、ケバブケース (短いダッシュの命名) を使用する必要があります。
                this.$emit('remove',index);
            }
        }
    });
    var vm = 新しい Vue({
        el: "#app",
        データ: {
            タイトル:「著者」、
            アイテム: ['塩漬けの魚がひっくり返る 1'、'塩漬けの魚がひっくり返る 2'、'塩漬けの魚がひっくり返る 3']
        },
        メソッド: {
            deleteItems: 関数 (インデックス) {
                console.log(""+this.items[index]"を削除しました);
                this.items.splice(インデックス、1);
            }
        }
    });
</スクリプト>

</本文>
</html>

実行結果:

ここに画像の説明を挿入

「削除」をクリックすると、任意の著者名を削除できます。ここでは 2 番目の著者名を削除をクリックすると、結果は次のようになります。

ここに画像の説明を挿入

2. 誰もが理解できるように、次の図を示します。

ここに画像の説明を挿入

おそらく、コンポーネントとインスタンス間のメソッドは相互運用できず、削除するノードはインスタンスの属性に属しているため、イベント配信を通じて、コンポーネントで定義されたメソッドがインスタンスで定義されたメソッドに転送され、その後ノードが削除される、という理解です。

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • Vueの「コンテンツ配信スロット」の最も包括的な概要の詳細説明
  • Vueのスロットコンテンツ配信で遊ぶ
  • Vueコンテンツ配信スロット(総合分析)
  • Vue学習ノート導入の詳細説明:コンポーネントコンテンツ配布(スロット)
  • Vuejs 11番目のコンポーネントのスロットコンテンツ配布例の詳細説明

<<:  Docker で PostgreSQL を実行し、いくつかの接続ツールを推奨する

>>:  数十億のデータに対するMySQLページングの最適化に関する簡単な説明

推薦する

MySQL に大量のデータを挿入するときに重複データを除外する方法

目次1. 問題を発見する2.重複したデータを残さずにすべて削除する3. 削除テーブルから重複データを...

Linux の高性能ネットワーク IO と Reactor モデルの分析

目次1. 基本概念の紹介2. ネットワークIOの読み取りと書き込みのプロセス3. 5つのLinuxネ...

Linux の ufw ファイアウォールの紹介

Linux のufw (Uncomplicated Firewall) を見て、ファイアウォールに変...

Centos6にMysql5.7をインストールする方法

環境セントロス6.6 MySQL 5.7インストールシステムがインストールされている場合は、まずアン...

CSS シャドウ効果の比較: ドロップシャドウとボックスシャドウ

Drop-shadow と box-shadow はどちらも影効果(ハロー効果)のための CSS プ...

nginx+uwsgi で Django プロジェクトを開始するための詳細な手順

Django で Web プロジェクトを開発する場合、開発およびテストのプロセスでは Django ...

CentOS7.4 で JDK1.8 をインストールするためのグラフィカル チュートリアル

Linux インストール JDK1.8 手順1. CentOS に独自の openJDK があるかど...

CSS3 とテーブルタグを使用して円軌道アニメーションを実装するためのサンプルコード

html: 実際には、テーブルタグに従っていくつかの実線の円 div を正六角形に配置し、div コ...

VSCode と SSH を使用したリモート開発

0. リモート開発が必要な理由組み込み Linux を開発する場合、便宜上、通常は Windows ...

MySql テーブル内の行を削除する実用的な方法

まず、どのフィールドまたはフィールドの組み合わせがデータ行を一意に識別できるかを決定する必要がありま...

DockerでNginxサーバーを作成する方法

動作環境: MAC Docker バージョン: Docker version 17.12.0-ce,...

CentOS 7.5 に Python 3.6.6 を最初からインストールするための詳細なチュートリアル

ps: 環境はタイトル通りです依存関係をインストールする yum インストール openssl-de...

Linux 環境変数とプロセス アドレス空間の概要

目次Linux 環境変数とプロセスアドレス空間コードを通じて環境変数を取得するプロセスアドレス空間な...

MySQL で時刻と日付の型を保存する際の選択問題を分析する

一般的なアプリケーションでは、timestamp、datetime、int 型を使用して時間形式を保...

LinuxシステムでのSystemC環境設定方法

以下はcentos7での設定方法ですsystemc ソース パッケージをダウンロード: System...