WeChatアプレットbindtapとcatchtapの違いの詳細な説明

WeChatアプレットbindtapとcatchtapの違いの詳細な説明

1. イベントとは何ですか?

(1)イベントはビュー層からロジック層への通信手段である。

(2)イベントは、ユーザの行動をロジック層にフィードバックして処理することができる。

(3)イベントはコンポーネントにバインドすることができ、トリガーイベントに到達すると、ロジック層内の対応するイベント処理機能が実行されます。

(4)イベントオブジェクトは、ID、データセット、タッチなどの追加情報を保持できます。

2. イベントの使い方

(1)簡単に言えば、コンポーネントにイベントをバインドすることです。bindtapとcatchtapはどちらもクリックイベントに属します。バインド後、コンポーネントをクリックするとこの機能がトリガーされます。

(2)tapName関数は、関数呼び出しに関するコンテキスト情報を格納するパラメータイベントを受け入れます。

(3)ラベル要素

<view id="tapTest" data-hi="WeChat" bindtap="tapName"> クリックしてください! </view>

(4)拘束イベント

ページ({
    タップ名: 関数(イベント) {
        console.log(イベント)
    }
})

3. バインドタップとキャッチタップの違い

(1)類似点:まず、どちらもクリックイベント関数であり、クリックされるとトリガーされます。この機能では、それらは同じであり、区別する必要はありません。

(2)相違点:主な違いは、バインドタップは泡立ちがあり、キャッチタップは泡立たないことです。

4. ミニプログラム内のイベントは、バブリングイベントと非バブリングイベントに分けられます。

(1)この記事では、バブリングイベントタップ(指が触れてすぐに離れる、つまりクリックイベント)を例に、バインドイベントとキャッチイベントを区別します。

(2)bindtap?イベントバインディングはバブリングイベントが上向きにバブリングするのを妨げない

(3)キャッチタップ?イベントバインディングはバブリングイベントが上向きにバブリングするのを防ぐことができる

イベントのターゲットと現在のターゲットの違い

上記の wxml&&wxss コードを引き続き使用して、今回は js コードの print 値を変更します。

// js
  アウタータップFn(e) {
    console.log("外側の親要素がクリックされました =.=",e);
  },
  インナータップ関数(e) {
    console.log("私はクリックされた内部の子要素です =.=",e);
  },

ターゲットは、イベントをトリガーするソース コンポーネントに対応します。このコンポーネントは、アクションが実行される領域に応じて、子コンポーネントまたは親コンポーネントになる場合があります。そして、currentTarget は常にイベントがバインドされているコンポーネントに対応します。

5. 例

1. 3 つのビュー クリック イベントがあり、すべてが bindtap を使用する場合、3 つのビューは階層的に含まれていますか?

<view id="outer" bindtap="out">
    外観
    <view id="middle" bindtap="middle">
        中間ビュー
        <view id="inner" bindtap="inner">
            内部ビュー
        </ビュー>
    </ビュー>
</ビュー>

2. js では、コードは対応するイベントのログを出力します。コードは次のとおりです。

出力:関数(e){
    console.log("--out バインドタップ クリック")
}, 中間: 関数 (e) {
    console.log("--middle bindtap クリック")
}, 内部: 関数 (e) {
    console.log("--inner bindtap クリック")
}

3. Bindtapの実行結果

  • ログを印刷するには、ビューをクリックします --> バインドタップをクリックして出力します
  • 中央のビューをクリックすると、2 つのログが印刷されます --> 中央のバインドタップをクリック -- アウト バインドタップをクリック
  • 新しいビューをクリックして 3 つのログを印刷します --> 内側のバインドタップをクリック - 中央のバインドタップをクリック - 外側のバインドタップをクリック
  • バインドタップは上向きの泡立ちを防げないので、内側の泡が最外層までクリックされていることがわかります。

4. 中間ビューのbindtapをcatchtapに変更するだけの場合

  • ログを印刷するには、アウトビューをクリックします --> アウトバインドタップをクリックします (上位要素がないため、バブルアップできません)
  • 中央のビューをクリックしてログを印刷します --> 中央のバインドタップをクリックします (キャッチタップは上向きの泡立ちを防ぎます)
  • 新しいビューをクリックして 2 つのログを印刷します --> 内側のバインドタップ クリック -- 中央のバインドタップ クリック (キャッチタップにより上向きの泡立ちが防止されます)

WeChatミニプログラムbindtapとcatchtapの違いについての詳細な説明はこれで終わりです。WeChatミニプログラムbindtapとcatchtapに関するより関連性の高いコンテンツについては、123WORDPRESS.COMで以前の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも123WORDPRESS.COMを応援していただければ幸いです。

以下もご興味があるかもしれません:
  • WeChat アプレットの bindtap パラメータ渡しのサンプルコード
  • WeChat アプレット イベント bindtap bindinput コード例
  • WeChatアプレットのbindtapイベントとバブル防止の詳細な説明
  • WeChatミニプログラムBindTapで対象ページを素早く連続クリックすると対象ページに複数回ジャンプする問題の解決方法
  • WeChatアプレットビューコントロールとbindtap間の問題の解決策
  • WeChatアプレットはbindtapとその他​​のイベントパラメータ送信を実装します

<<:  Docker コンテナにデータベースをデプロイする場合の欠点は何ですか?

>>:  MySQL SQL文を最適化するためのヒント

推薦する

Js でオブジェクトのディープ オブジェクトを安全に取得するメソッドの例

目次序文文章パラメータ例Lodash 実装:トーキー機能: castPath関数: stringTo...

Linux の文字端末でマウスを使って赤い四角形を移動する方法

すべてがファイルです! UNIX はすでにそれを言っています。エリック・レイモンドはこう言いました。...

Django が uwsgi+nginx プロキシで静的リソースにアクセスできない問題の解決方法

uwsgi+nginx プロキシ Django をデプロイする場合、uwsgi を使用したアクセスは...

JavaScript ファイルの読み込みとブロックの問題: パフォーマンス最適化のケーススタディ

まず質問させてください。HTML ページを作成するときに、外部から JS ファイルをインポートする場...

MySQLトリガーの使用

トリガーにより、ステートメントの実行前または実行後に他の SQL コードを実行できます。トリガーは、...

INS と DEL を使用してドキュメントの変更をマークする方法の詳細な説明

ins と del は、HTML 4.0 で導入され、文書の作成時に作成者が共同作業できるようにし、...

jsでユーザー登録機能を実装する

この記事の例では、ユーザー登録機能を実装するためのjsの具体的なコードを参考までに共有しています。具...

Vue3でアイコンを使用する2つの例

目次1. SVGを使用する2. fontAwesomeを使用する3 ソース4 結論テクノロジースタッ...

mysql ERROR 1045 (28000) 問題の解決方法

私はmysql ERROR 1045に遭遇し、この問題に長い時間を費やしました。私はそれを自分で書き...

LinuxにMySQLをインストールし、外部ネットワークアクセスを構成する例

設定手順1. DNSが設定されているかどうかを確認するDNSが設定されていない場合は、前の記事を参照...

Node.jsを理解するのはとても簡単です

目次Node.js の公式紹介Node.jsのコア開発言語ウェブ上の JavaScript と No...

HTML入力ドロップダウンメニューを実装する方法

コードをコピーコードは次のとおりです。 <html> <ヘッド> <m...

Dockerコンテナを介してランプアーキテクチャを構築するプロセス

目次1. Centosイメージを取得する2. nginxイメージをビルドする3. MySQLイメージ...

Docker JVM メモリ使用量の表示

1. Docker コンテナのホスト マシンに入り、指定されたイメージを実行しているコンテナ ID ...

ffmpeg コマンドラインを使用してビデオを変換するためのサンプルコード

この記事の本文を始める前に、まず ffmpeg プログラムをインストールする必要があります (Lin...