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ページングの最適化に関する簡単な説明

推薦する

XHTML 入門チュートリアル: XHTML とは何ですか?

HTMLとは何ですか?簡単に言えば、HTML は Web ページを作成するために使用されます。とて...

DockerでRabbitMqの共通クラスタとミラークラスタを構築する詳細な操作

目次1. RabbitMqの動作環境を構築する1.検索を通じてrabbitmqイメージを照会する2....

Zabbix は MySQL インスタンス メソッドを監視します

1. 監視計画監視項目を作成する前に、何を監視するのか、どのように監視するのか、監視データをどのよう...

CSS変数がJSインタラクティブコンポーネント開発にもたらす改善と変更のサンプルコードの詳細な説明

1. CSS変数がもたらす質的変化CSS 変数によってもたらされる改善は、CSS コードの節約や C...

MySQL 8.0.15 のインストールと設定方法のグラフィックチュートリアル

この記事ではMySQL 8.0.15のインストールと設定方法を参考までに記録します。具体的な内容は以...

HTML でハイパーリンク タグを使用するチュートリアル

ウェブサイトのさまざまな HTML ドキュメントはハイパーリンクを通じて相互に接続され、一貫性のある...

MySQL 5.7.13 のインストールと設定方法の Mac でのグラフィック チュートリアル

MySQL 5.7.13 Mac用インストールチュートリアル、非常に詳細で、以下のように記録されてい...

Dockerを使用してElasticsearchクラスターを素早くデプロイする方法

この記事では、 Dockerコンテナ ( docker-composeを使用してオーケストレーション...

デザイナーはコーディングを学ぶ必要がありますか?

多くの場合、 Web デザインが完成した後でデザイナーの無知が露呈し、批判されることがあります。彼ら...

vscodeを使用してReact Native開発環境を構築する方法を教えます

質問コードにはプロンプトがありません: RN 開発に不慣れな、フロントエンド以外の学生の多くは、「ど...

Nginx リバース プロキシ springboot jar パッケージ プロセス分析

Springboot プロジェクトをサーバーにデプロイする方法としては、war パッケージにパッケー...

Mysql SQL ステートメント演習 (50 問)

テーブル名とフィールド–1. 学生リスト学生 (s_id、s_name、s_birth、s_sex)...

MySQLテーブルを削除する方法

MySQL でテーブルを削除するのは非常に簡単ですが、削除コマンドを実行するとすべてのデータが消えて...

Docker デプロイメント RabbitMQ コンテナ実装プロセス分析

1. イメージをプルするまず、次のコマンドを実行して、イメージをローカル コンピューターにダウンロー...

React refsの詳細な紹介

1. 何ですかRefs 、コンピューターでは Resilient File System (ReF...