ミニプログラムの基本的な使用方法の知識ポイント(非常に包括的で、お勧めです!)

ミニプログラムの基本的な使用方法の知識ポイント(非常に包括的で、お勧めです!)

アプリを登録するときに何をすればよいですか?

  1. ミニプログラムのエントリーシナリオを決定する
  2. ライフサイクル機能を監視し、ライフサイクル機能で WeChat ユーザー情報を取得するなど、ライフサイクル内で対応するビジネス ロジックを実行します。
  3. App() インスタンスはグローバルに共有される (シングルトン オブジェクト) ため、ここに共有データを配置できます。

ページを登録するときに通常何をする必要がありますか?

  1. ライフサイクル中にネットワーク要求を送信してサーバーからデータを取得します。
  2. wxml による参照と表示を容易にするために、いくつかのデータを初期化します。
  3. wxml 内のいくつかのイベントをリッスンし、対応するイベント関数をバインドします。
  4. その他の監視 (ページのスクロール、上にプルアップして更新、下にプルダウンしてさらに読み込むなど)

wxml テンプレートと include について

wxmlでは、ページ/コンポーネントで定義された関数を直接呼び出すことはできません。

wxml ファイルでテンプレート タグを定義します。テンプレート タグは呼び出されないとレンダリングされません。

name属性はis属性に対応しており、{{}}構文を使用できます。

<テンプレート名="コンポーネント">
<view>ハハハ</view>
  <text>やあ、やあ、やあ</text>
  <テキスト>{{名前}}</テキスト>
  <テキスト>{{年齢}}</テキスト>
</テンプレート>
<テンプレートは="コンポーネント"/>
<テンプレートは="コンポーネント"/>
<テンプレートは="コンポーネント"/>
<template is="compoent" data="{{name: '小屏', age:'123'}}" />

wxml をインポートする方法は 2 つあります。

輸入

1: 主にテンプレートをインポートする

2: 再帰インポートができないのが特徴

紹介文を含める:

1: 共通コンポーネントをファイルに抽出する

機能: テンプレート/wxs をインポートできない/再帰的にインポートできる

wxsモジュール

wxsモジュールは、wxmlと組み合わせた小さなプログラム用のスクリプト言語であり、ページの構造を構築できます。

wxs と javascript は異なる言語であり、独自の構文を持ち、JavaScript と一致しません。 (でも基本的には同じです)

wxmlでは、ページ/コンポーネントで定義された関数を直接呼び出すことはできません。

しかし、場合によっては、関数を使用して wxml 内のデータを処理する (Vue のフィルターに似た) 必要があるため、この場合は wxs が使用されます。

wxl の使用上の制限と機能:

WXS ランタイム環境は他の JavaScript コードから分離されています。WXS は他の JavaScript ファイルで定義された関数を呼び出すことも、アプレット内の API を呼び出すこともできません。

wxs は配列の関数コールバックとして使用できません。

動作環境の違いにより、iOS 端末上のアプレットにおける wxs は JavaScript よりも 2 ~ 20 倍高速ですが、Android 端末では両者の動作効率に差はありません。

ミニプログラムのコンポーネント化

ミニプログラム コンポーネントと、そのコンポーネントを呼び出すページ スタイルは相互に影響を与えません。

コンポーネントを呼び出すには、ページ上の json ファイルにコンポーネント名とパスを追加する必要があります。

{
  "コンポーネントの使用": {
    "my-cut":"/pages/compent/my-cut" }
}

ページとコンポーネントのスタイルが互いに影響し合う必要がある場合は、オプションのstyleIsolationプロパティを使用できます。

コンポーネントのjsファイルComponent({})

  // コンポーネントのオプションの styleIsolation を設定すると: "apply-shared" により、ページ設定のスタイル属性がコンポーネントのスタイルに影響します // コンポーネントのオプションの styleIsolation を設定すると: "shared" により、ページ設定のスタイル属性がコンポーネントのスタイルに影響しますComponent({
	オプション:{
    スタイル分離: "apply-shared"
  },
})

コンポーネント間の動的変換にはプロパティを使用する

コンポーネントでは、externalClassesプロパティを使用してCSSスタイルを動的に設定できます。

成分({
プロパティ:
    // タイトル: 文字列
    タイトル:{
      タイプ: 文字列、
      値: "私はデフォルト値です",
      //新しい値と古い値を監視するオブザーバー: function(newVal,oldVal){
        コンソールログ(新しい値、古い値)
      }
    },
    
  },
    // コンポーネントでは、このプロパティを使用して CSS スタイルを動的に設定できます externalClasses: ["tltleclass"]

})

ページ内のプロパティの呼び出し

<my-cut title="ハハ" tltleclass="red"></my-cut>
<my-cut title="やあやあ" tltleclass="green" />
<マイカット/>

ページ CSS ファイル

。赤{
  色: 赤;
}
。緑{
  色: 緑;
}

コンポーネントとページ間の関数呼び出し

ページ上でコンポーネントを使用する場合、コンポーネント データを変更する必要があることがあります。その場合、ページの js ファイル内でコンポーネント データを呼び出す必要があります。

アプレットには、コンポーネント オブジェクトを取得できる selectComponent('.class/#xxx') があります。

コンポーネント wxml

<view class="contention">
  <block wx:for="{{titled}}" wx:key="index">
    <view class="tit"> <text class="intext {{index == increat? 'active' : ''}}" data-count="{{index}}" bindtap="targetTap">{{item}}</text> </view>
  </ブロック>
</ビュー>

コンポーネント js

メソッド: {
    ターゲットタップ(e){
      定数インデックス = e.currentTarget.dataset.count
      this.setData({
        増加:インデックス
      })
        this.triggerEvent("ターゲットカウント"、{})
    },
    修正する(){
      this.setData({
        タイトル: ["政治学", "数学", "英語"]
      })
    }

  }

ページ wxml

<switch titled="{{list}}" bind:targetCount="targetCount" class="sw-class"></switch>

ページ js

  ターゲットカウント(){
  //コンポーネントオブジェクトを取得します。const content = this.selectComponent('.sw-class') 
    コンソール.log(コンテンツ)
    // コンテンツ.setData({
    // titled:["政治学", "数学", "英語"]
    // })
    // オープン仕様では、一般的に関数を直接変更するこの方法は推奨されていません。コンポーネント内のメソッドを使用してメソッドを変更し、ページで content.amend() を呼び出すことをお勧めします。
  },

ミニプログラムコンポーネントスロットの使用

シングルスロット

コンポーネント wxml

<表示>
  私はタイトルです</view>
<スロット></スロット>
<表示>
  私はコンテンツです</view>

ページ wxml の使用

<私のスロット>
<button size="mini"> ボタン</button>
</my-slot>
<私のスロット>
 <画像 src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg2.woyaogexing.com%2F2021%2F04%2F26%2F1b402c98095d452486508b8250b21f3f%21360x640.jpeg&refer=http%3A%2F%2Fimg2.woyaogexing.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1625711145&t=d9d310d5e9c878a9d4b7bc7057f2b754"/>
</my-slot>
<私のスロット>
  <スライダー値="20"></スライダー>
</my-slot>

複数のスロットを使用する

name属性を使用して各スロットに名前を付ける必要があります

コンポーネントオブジェクトのオプションオブジェクトのmultipleSoltsプロパティをtrueに設定する必要があります。

コンポーネント wxml

<view>私はマルチスロットのタイトルです</view>
<ビュー> <スロット名="スロット1" ></スロット> </ビュー>
<view> <スロット名="slot2" ></スロット> </view>
<view> <スロット名="slot3" ></スロット> </view>
<view>私はマルチスロットの末尾です</view>

コンポーネント js ファイル

成分({
  /**
   * コンポーネントプロパティのリスト */
  オプション:{
    複数スロット:true
  }
  )}

このページの使用

<!-- 複数のスロットの使用 -->
<!-- 注記:
各スロットに名前を付ける必要があります。コンポーネントオブジェクトのオプションオブジェクトの下にある multipleSolts プロパティを true に設定する必要があります -->
<私のスロット>
<button slot="slot3">415461</button>
<スライダースロット="スロット1" 値="20"></スライダー>
<text slot="slot2">ヘヘヘヘ</text>
</my-mslot>

ミニプログラム コンポーネントのコンポーネント コンストラクターの機能は何ですか?

1つのプロパティにより、ユーザーはコンポーネントにデータを渡すことができます

プロパティ: 
	タイトル: 文字列、
	コンテンツ:{
	タイプ: 配列、
	値:[1,2.3],
	オブザーバー:関数(newVal,oldVal){
        コンソールログ(新しい値、古い値)
      }
	}
}

2.dataはいくつかのコンポーネントの初期化データを定義します

データ:{
	カウンター: 0
}	

コンポーネント内の関数を定義するために3つのメソッドが使用される

方法:{
関数foo(){
	
}
}

4つのオプションはコンポーネントの構成オプションを定義します

オプション:{
//複数のスロットを使用する必要がある場合はtrueに設定します
	複数スロット:true、
	// スタイルの分離モードを設定します styleIsolation: "apply-shared", // ページで設定されたスタイル属性はコンポーネントのスタイルに影響します //styleIsolation: "shared" ページで設定されたスタイル属性はコンポーネントのスタイルに影響します}

5 externalClassesは外部から渡される追加のスタイルを定義します

外部クラス:["on","tre"]

6人のオブザーバーがプロパティ/データの変更を監視できます

観察者:{
	カウンター: function(newVal){
		コンソールログ(新しい値)
	}
}

7 ページのライフサイクルを監視する

コンポーネントjsファイル内

  ページの存続期間:{
    見せる(){
      console.log("監視コンポーネントが配置されているページ")
    },
    隠れる(){
      console.log("監視コンポーネントが配置されているページが非表示の場合")
    },
    サイズ変更(){
      console.log("ページサイズの変更を監視する")
    }
  }

コンポーネントのライフサイクルを監視する

生涯:
    作成された(){
      console.log("コンポーネントが作成されました")
    },
    添付(){
      console.log("コンポーネントがページに追加されました")
    },
    準備ができて(){
      console.log("コンポーネントがレンダリングされました")
    },
    移動しました(){
      console.log("コンポーネントはノードツリー内の別の場所に移動されました")
    },
    分離された(){
      console.log("コンポーネント")
    }
  }

ミニプログラムネットワークリクエスト

onReady: 関数 () {
    wx.リクエスト({
      URL: 'http://httpbin.org/post',
      メソッド:'post',
      データ:{
        名前:"王帥",
        年齢:19
      },
      成功:function(res){
          コンソール.log(res)
      }
    })
  },

いくつかの重要な属性

  1. url: 送信する必要があります
  2. データ: リクエストパラメータ
  3. メソッド: リクエストメソッド
  4. 成功: 成功したときのコールバック
  5. fail: 失敗が発生したときのコールバック

一般的に、ネットワーク リクエストと wx.request 間の結合を減らすために、Promise メソッドを使用してコールバック結果を取得します。

プロミスラッパーの使用

デフォルトの関数リクエストをエクスポートする(オプション) {
    新しい Promise を返します (resolve, reject) => {
      wx.リクエスト({
        url: オプション.url、
        メソッド: option.method || 'get',
        データ: オプション.データ || {},
        成功: 関数 (res) {
            解決する
        },
        失敗: 関数 (res) {
          拒否
        }
      })
    })
}

ページコール

 onReady: 関数 () {
    //ミニプログラムネイティブネットワークリクエスト// wx.request({
    // URL: 'http://httpbin.org/post',
    // メソッド:'post',
    // データ:{
    // 名前:"wangshuai",
    //年齢:19
    // },
    // 成功:function(res){
    // コンソール.log(res)
    // }
    // })
    リクエスト({url: 'http://httpbin.org/post',method:"post"}).then(res=>{
      コンソール.log(res)
    }).catch(エラー =>{
      コンソール.log(エラー)
    })
  },

ミニプログラムでのポップアップウィンドウ表示

ページ wxml

<button size="mini" bindtap="showToast">showToast</button>
<button size="mini" bindtap="showModal">モーダルを表示</button>
<button size="mini" bindtap="showLoading">読み込み中を表示</button>
<button size="mini" bindtap="showAction">アクションを表示</button>
<button size="mini" open-type="share">共有</button>

ページ js ファイル

ページ({
	表示トースト(){
    wx.showToast({
      タイトル: 「私はshowToastです」
    })
  },
  表示モーダル(){
    wx.showModal({
      タイトル:「削除」、
      キャンセルカラー: 'キャンセルカラー',
      成功:関数 (パラメータ) {
          console.log(パラメータ)
          パラメータをキャンセルする場合{
              console.log("削除キャンセルをクリックしました")
          } 
      } 
    })
  },
  読み込み中(){
    wx.showLoading({
      タイトル: 「待つ」
      mask: true //他の操作を防ぐためにマスクを指定します})
    タイムアウトを設定します(()=>{
      wx.hideLoading({
        成功: (res) => {},
      })
    },1500)
  },
  表示アクション(){
    wx.showActionSheet({
      itemList: ['写真', 'ファイル'],
    })
  }
})

ミニプログラムページの共有

ミニプログラムを共有する方法は 2 つあります。1 つは共有ボタンをクリックする方法、もう 1 つは右上隅のメニュー オプションをクリックして共有を選択する方法です。

ミニプログラムを共有するときは、onShareAppMessageを通じて共有情報を表示する必要があります。

ページ上の転送ボタン (ボタン コンポーネント open-type="share") または右上隅のメニューの [転送] ボタンをクリックするユーザーの動作を監視し、転送されるコンテンツをカスタマイズします。

注: このイベント ハンドラが定義されている場合にのみ、右上隅のメニューに [転送] ボタンが表示されます。このイベント ハンドラは、カスタム転送コンテンツのオブジェクトを返す必要があります。返されるコンテンツは次のとおりです。

ミニプログラムジャンプについて

ナビゲータータグ

URLを使用したナビゲータージャンプについて。

<navigator url="/pages/home/home">ホームへ移動</navigator>

ジャンプ属性open-typeには以下の値があります

リダイレクト: 現在のページを閉じて、アプリケーション内のページにジャンプします。しかし、タブバーページにジャンプすることは許可されておらず、戻ることもできません。

switchTab: タブバーページに移動し、タブバー以外のページを閉じます (タブバーで定義する必要があります)

再起動: すべてのページを閉じて特定のページを開きます (特定のページを直接表示し、タブページにジャンプできます)

<navigator url="/pages/home/home">ホームへ移動</navigator>
<navigator url="/pages/home/home" open-type="redirect">ホームへジャンプ(リダイレクト)</navigator>
<navigator url="/pages/home/home" open-type="reLaunch">ホームへジャンプ(再起動)</navigator>
<navigator url="/pages/home/home" open-type="switchTab">ホームへジャンプ (switchTab)</navigator>

要約する

ミニプログラムの基本的な使い方については以上です。ミニプログラムの基本的な使い方についてさらに詳しく知りたい方は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • WeChatアプレットのフレックスレイアウトの基本について簡単に説明します
  • WeChat ミニプログラム開発の基本チュートリアル
  • WeChatアプレット開発の詳細な説明(ゼロからのプロジェクト)
  • WeChatアプレットクラウド開発データベース操作
  • WeChatアプレットWeChat支払いアクセス開発例詳細説明
  • mpvueを使用して小さなプログラムを開発する際に注意して理解する必要がある知識ポイントについて簡単に説明します。
  • WeChat アプレット開発のための 40 の技術的ヒントのまとめ (推奨)
  • WeChat ミニプログラム開発 - 入門チュートリアル

<<:  複数のドメイン名、ポート、IP仮想ホストに基づくNginx構成

>>:  MySQL 8.0.12 のインストールと環境変数の設定チュートリアル (Win10 の場合)

推薦する

高い同時実行性の下でNginxのパフォーマンスを最適化する方法をまとめます

目次特徴利点インストールとコマンド設定ファイルプロキシモードとリバースプロキシ構成フォワードプロキシ...

遭遇したいくつかのブラウザ互換性の問題について簡単に説明します

背景ブラウザの互換性の問題を解決するのは非常に面倒なことです。高度な技術はそれほど必要ありませんが、...

MySQL で null を置き換える IFNULL() および COALESCE() 関数の詳細な説明

MySQLではisnull()関数をnull値の代わりとして使用することはできません。次のように:ま...

フレームセットを使用して複雑なページレイアウトを実装するためのテクニックの概要

コードをコピーコードは次のとおりです。 <html> <!--混合フレームレイアウ...

Reactは二次的連鎖効果(階段効果)を実現する

この記事では、二次リンク効果を実現するためのReactの具体的なコードを参考までに共有します。具体的...

MySQL 入門 - SQL 実行プロセス

目次1. プロセス2. コアアーキテクチャ2.1 サーバー層の基本コンポーネントの紹介3. ステート...

ミニプログラム録画機能の実装

序文ミニプログラムを開発する過程では、録音機能を実装し、録音を再生し、録音をサーバーにアップロードす...

MySQL インデックスに関するヒントのまとめ

目次1. インデックスの基礎知識1.1 インデックスの利点1.2 インデックスの有用性1.3 インデ...

MySql ストアド プロシージャ パラメータの初歩的な使用法の詳細な説明

パラメータでのストアドプロシージャの使用IN パラメータは、プロシージャに情報を渡すためにのみ使用さ...

Linux のファイル権限とグループ変更コマンドの詳細な説明

Linux では、すべてがファイルであり (ディレクトリもファイルです)、各ファイルにはユーザーに対...

MySQLでページングクエリを実装する方法

SQL ページング クエリ:背景会社のシステムには、構成管理用のプラットフォーム、いわゆる CRUD...

Vueプロジェクトウォッチで関数が繰り返しトリガーされる問題の解決

目次問題の説明:解決策1解決策2問題の説明:ページ A と B の 2 つがあり、各ページにはget...

Linux で SpringBoot jar プログラム デプロイメント シェル スクリプトを起動および停止する方法

では早速、コードをお見せしましょう。具体的なコードは次のとおりです。 #!/bin/bash cd ...

IDEA で Docker を WSL2 にデプロイする詳細なプロセス

ローカル環境はWindows10+WSL2(Ubuntu)です。サーバーにDockerをインストール...

PHP 開発環境の構築に関する win10 docker-toolsbox チュートリアル

画像をダウンロード docker プル mysql:5.7 docker pull php:7.2-...