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文を最適化するためのヒント

推薦する

MySQLクエリデータを時間別に表示します。データがない場合は0を入力してください。

需要背景統計インターフェースでは、フロントエンドは 2 つの配列を返す必要があります。1 つは 0 ...

WeChatアプレット学習ノート: ページ構成とルーティング

最近、小さなプログラムの開発を勉強して見直しており、学習結果のいくつかをメモしています。公式の We...

MySQL ベストプラクティス: パーティションテーブルの基本タイプ

MySQL パーティションテーブルの概要MySQL の人気が高まるにつれて、MySQL に保存される...

...

VueはEChartsを使用して折れ線グラフと円グラフを実装します

バックエンド管理プロジェクトを開発する場合、バックエンドのユーザーデータをカウントし、折れ線グラフや...

HTML テーブルタグチュートリアル (11): 水平方向の配置属性 ALIGN

水平方向では、テーブルの配置を左、中央、右に設定できます。基本的な構文<テーブル配置=&quo...

Kubernetes ポッドオーケストレーションとライフサイクルの詳細な説明

目次K8Sマスター基本アーキテクチャポッドオーケストレーションコンセプトPod オブジェクトのプロパ...

MySQL ストアド プロシージャの作成と呼び出しの詳細な説明

目次序文ストアドプロシージャ: 1. ストアドプロシージャの作成と呼び出し1. ストアドプロシージャ...

Vueは単一ファイルコンポーネントの完全なプロセス記録を実装します

目次序文単一ファイルコンポーネント基本概念シンプルなローダーコンポーネントコンテンツの解析コンポーネ...

Vueの計算プロパティの詳細な説明

1. 計算属性とは何ですか? 簡単に言えば、計算された結果が属性に保存されるもので、キャッシュとして...

nginx.conf ファイルの構文強調表示とフォーマット設定には nginx.vim ツールを使用します。

私はtengineを使用しています。インストールディレクトリは/usr/local/tengineで...

ユーザーエクスペリエンスの構築

<br />おそらく、あなたは会社に入社したばかりで、その会社が「ユーザビリティ」に関す...

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

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

CentOS 8.1 で LEMP (Linux+Nginx+MySQL+PHP) 環境を構築する (チュートリアルの詳細)

目次ステップ1: CentOS 8でパッケージを更新するステップ2: CentOS 8にNginx ...

CSSラベル表示モードについて1つの記事で学ぶ

タグの種類(表示モード) HTML タグは、一般的にブロック タグとインライン タグの 2 種類に分...