WeChatミニプログラム開発のためのコンポーネント設計仕様

WeChatミニプログラム開発のためのコンポーネント設計仕様

WeChat ミニプログラム コンポーネント設計仕様

コンポーネントベースの開発という考え方は、私の開発および設計プロセスに貫かれています。私は長い間、このような考え方から恩恵を受けてきました。

  1. 再利用可能なコンポーネント - 重複するコードの量を削減
  2. コンポーネントは独立した機能ユニットとして、メンテナンスが容易
  3. コンポーネントはテンプレートとして使用され、wxmlにwxsを導入する代わりにさまざまな属性を簡単に計算できます。

小さなプログラムのコンポーネントを日常的に開発する際、私は通常、次のルールに従います。

1. スタイルの独立性と依存関係の独立性

コンポーネントの開発中、コンポーネントはグローバル スタイルに依存できます。コンポーネントが導入されると、ページ スタイルとグローバル スタイルの両方を使用してレンダリングされます。

オプション:
    グローバルクラスを追加: true、
    複数スロット: true
}

ただし、コンポーネントの移植性に基づいて、各コンポーネントをグローバル スタイルに依存しないように構成することをお勧めします。

オプション:
    addGlobalClass: false、
    複数スロット: true
}

各コンポーネントの wxss 構成で、各コンポーネントに必要なスタイルを選択します。

コンポーネント開発中、app.jsにコンポーネントを導入することができます。

const app = getApp();

しかし、移植の利便性を考慮すると、コンポーネント内のグローバルデータを取得するには Storge を使用する方が適切です。

いくつかの js ファイルに依存する場合でも、ファイルをコンポーネント ディレクトリに配置してインポートできます。

プロパティ値設定リスナー

コンポーネントはページから渡された値を受け取ることができますが、コンポーネント内のデータ形式がページの表示要件と一致しない可能性があり、いくつかの調整が必要になります。これらの調整はコンポーネントに実装することをお勧めします。コンポーネント内のデータに変更を加えても、ページ内のデータには影響しません。

プロパティ:
    アクティブ:{
      タイプ:数値、
      オブザーバー:関数(newVal,oldVal){
        //データを前処理する}
    }
}

3. ページスタックを変更するすべての操作は、ページによって完了します。

ページAのコンポーネントCをクリックするとページEにジャンプします

ページBのコンポーネントCをクリックするとページFにジャンプします

この場合、クリック イベントは処理のためにページに渡され、コンポーネントはイベント通知のみを行います。特定のジャンプ イベントは、ページ内の関数によって実装されます。

コンポーネントでの使用:

this.triggerEvent('click',引数)

ページA:

<c-component bind:click="navtoPageE" />

ページ B:

<c-component bind:click="navtoPageF" />

コンポーネント内にコンポーネントを入れ子にしないようにしてください

コンポーネント内に読み込みコンポーネントを使用していましたが、読み込みコンポーネントの表示をパラメータで制御しており、非表示にできない問題が発生したため、特定のコンポーネントが見つけられませんでした。

コンポーネントは統一されたクラスを定義する

これは、テンプレートとしてよく使用されるコンポーネント内のメソッドの統一された呼び出しを容易にするためのものです。

acmp = this.selectAllComponents('.card') とします。
acmp.forEach(関数 (ele, インデックス) {
    ele.closeActionBar();
})

コンポーネントライフサイクルの使用

コンポーネントはライフサイクルをサポートします。一度だけ初期化する必要がある一部のデータまたはカウンター関数は、添付された状態で完了する必要があります。

生涯:
    添付(){
      this.setData({
        オープンID:app.globalData.openid
      })
    }
}

参照ドキュメント

WeChat ミニプログラム - ページとコンポーネント間で情報を転送し、機能を呼び出す方法

WeChat ミニプログラム - ミニプログラムの開発をスピードアップするためのヒント

要約する

WeChatミニプログラム開発のコンポーネント設計仕様に関するこの記事はこれで終わりです。WeChatミニプログラムコンポーネントの関連コンテンツについては、123WORDPRESS.COMで以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • WeChat アプレットのラジオチェックボックスコンポーネントの詳細な説明とサンプルコード
  • WeChat アプレット ピッカー コンポーネント ドロップダウン ボックスの選択入力入力ボックスの例
  • WeChatアプレットボタンコンポーネントの詳細な説明と簡単な例
  • WeChat アプレットカウントダウンコンポーネント実装コード
  • WeChat アプレット スワイパー コンポーネント カルーセルの詳細な説明と例
  • WeChatアプレット開発でvant uiコンポーネントを正しく使用する方法の詳細な説明
  • WeChatミニプログラム(10)スワイパーコンポーネントの詳細な紹介
  • WeChatミニプログラム(XIV)ボタンコンポーネントの詳細な紹介
  • WeChatアプレットが画像プリロードコンポーネントを実装
  • WeChatアプレット画像コンポーネント例の詳細な説明

<<:  MYSQL は、指定されたユーザーのランキングとクエリを実装します。ランキング関数 (並列ランキング関数) のサンプルコード

>>:  Linux nohup はプログラムをバックグラウンドで実行し、表示します (nohup と &)

推薦する

docker を使用して crownblog プロジェクトを Alibaba Cloud にデプロイする方法

フロントエンドプロジェクトのパッケージ化.env.productionを見つけて、自分のIPまたはド...

nginx httpモジュールのデータ保存構造の概要

このセクションから、http モジュールの実装原理について説明します。http モジュールで非常に重...

Windows 10 に TomCat をインストールするチュートリアル図

WindowsにTomCatをインストールするこの記事では、WindowsプラットフォームにTomC...

JavaScript を使用した Web 計算機の作成

この記事は主にJavaScriptを使用してWeb計算機を実現する効果を記録し、参考として掲載してい...

Webフロントエンドの一般的な操作(JS/HTML/CSSなどの知識を含む)

ul liの前のアイコン1をキャンセルしますクリア値1値を1に設定ラベル中央値1をクリアラベルの中央...

WindowsX Hyper-V ベースの CentOS システムをインストールする

現在、Linux を使用するほとんどの人は、クラウド サーバーを使用するか、Windows 上に仮想...

docker で mysql に接続できない場合の解決策

シナリオ: 仮想マシンの Docker コンテナに最新バージョンの MySQL をインストールした後...

vue-cropper コンポーネントは画像の切り取りとアップロードを実現します

この記事では、画像の切り取りとアップロードを実装するためのvue-cropperコンポーネントの具体...

HTML 選択タグにリンクを追加する 3 つの方法

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

VMware 仮想マシンのインストール Apple Mac OS の超詳細なチュートリアル

目次要約する仕事の都合で Apple の Mac OS に対応するソフトウェアをインストールする必要...

サブクエリ最適化における MySQL 選択の実装

以下のデモはMySQLバージョン5.7.27に基づいています。 1. MySQLサブクエリ最適化戦略...

ウェブページ印刷細線表+ページ印刷究極の戦略

最近、クライアントのために印刷していたとき、ページのヘッダーを印刷するのではなく、表の内容だけを印刷...

MySQL ステートメントの実行順序と書き込み順序の例の分析

選択ステートメントの完全な構文は次のとおりです。 選択 DISTINCT <選択リスト>...

高性能ウェブサイトの最適化ガイド

パフォーマンスの黄金律:エンドユーザーの応答時間のわずか 10% ~ 20% が HTML ドキュメ...

MySQL シリーズ 7 MySQL ストレージ エンジン

1. MyISAM ストレージエンジン欠点:トランザクションはサポートされていません最小粒度ロック:...