WeChat アプレットと uniapp の高頻度の面接の質問

1. WeChat ミニ プログラムの主なディレクトリとファイルは何ですか?

1. project.config.jsonプロジェクト構成ファイル。インターフェイスの色、コンパイル構成など、いくつかのパーソナライズされた構成を実行します。

2.app.jsonアプレットのすべてのページ パス、インターフェイス パフォーマンス、ネットワーク タイムアウト、下部タブなどを含む、現在のアプレットのグローバル構成

3.サイトマップ設定アプレットとそのページが WeChat によってインデックス付けされることを許可するかどうか

4.pages には特定のページが含まれます

5. wxssページ スタイル (グローバル スタイルとしてのapp.wxss) は 、現在のアプレットのすべてのページに作用し、ローカル ページ スタイル page.wxss は現在のページでのみ有効になります。

6. app.jsアプレットのロジック

7.jsページロジック

8. JSONページの構成

9.wxmlページ構造

2. wxml と標準 html の類似点と相違点は何ですか?

1. どちらもページの構造を記述するために使用されます。

2. どちらもタグ、属性などで構成されます。

3. ラベル名が異なり、アプレット ラベルが減り、単一ラベルが増えています。

4. wx:if のような属性や { { }} のような式がさらにあります

5. WXML は WeChat アプレット開発者ツールでのみプレビューできますが、HTML はブラウザでプレビューできます。

6. コンポーネント パッケージが異なります。WXML によってコンポーネントが再パッケージ化されます。

7. アプレットは JS Core で実行されます。DOM ツリーとウィンドウ オブジェクトは存在せず、アプレットではウィンドウ オブジェクトとドキュメント オブジェクトを使用できません。

3. WXSS と CSS の類似点と相違点は?

1. これらはページの外観を記述するために使用されます。

2. WXSS は CSS のほとんどの機能を備えており、いくつかの拡張と変更も加えられています。

3. WXSS は新しいサイズ単位を追加し、WXSS は最下層で新しいサイズ単位 rpx をサポートします。

4. WXSS は一部の CSS セレクターのみをサポートします。

5. WXSS はグローバル スタイルとローカル スタイルを提供します

4. WeChat アプレットのデータ要求をどのようにカプセル化しますか?

1. すべてのインターフェースを統合された js ファイルに入れてエクスポートします。

2. app.js でリクエスト データをカプセル化するメソッドを作成し、Promise オブジェクトを使用してリクエストをカプセル化する統合構成を追加します。

3. ページ内でカプセル化されたメソッドを呼び出してデータをリクエストします

5. ミニ プログラム ページ間でデータを転送する (値による) 方法は何ですか?

1. ラベルの data-* 属性を設定し、メソッド内の e.currentTarget.dataset を通じてデータを取得します。

6. アプレットと Vue の双方向バインディングの類似点と相違点は何ですか?

アプレット内で this.data のプロパティを直接ビューに同期することはできないため、setData を呼び出す必要があります。

7. アプレットのライフサイクル機能

アプリ:

Onlaunch() ライフサイクル コールバック - アプレットの初期化の監視

Onshow () ライフサイクル コールバック - アプレットの開始またはフォアグラウンドへの切り替えを監視します

Onhide () ライフサイクル コールバック - アプレットを監視し、バックグラウンドに切り替える

ページ:

1.onLoad() ページがロードされるときにトリガーされ、一度だけ呼び出され、現在のページ パス内のパラメーターを取得できます。

2.onShow() ページが表示されるか前景に切り取られるときにトリガーされ、通常はデータ要求を送信するために使用されます。

3.onReady() ページが初めてレンダリングされるときにトリガーされ、一度だけ呼び出され、ページがビュー レイヤと対話する準備ができていることを示します。

4. onHide() 下部のタブで他のページに切り替えるか、アプレットが背景に切り取られるなど、ページが非表示/背景に切り取られるときにトリガーされます。

5.onUnload() redirectTo や他のページへの navigateBack など、ページがアンロードされるときにトリガーされます。

コンポーネント

1.作成されたコンポーネントのライフサイクル関数 - コンポーネントインスタンスが作成されたばかりのときに実行されます。setData

2. アタッチされたコンポーネントのライフサイクル関数 - コンポーネント インスタンスがページ ノード ツリーに入るときに実行されます。

3.readyコンポーネントライフサイクル機能 - コンポーネントのレイアウトが完了した後に実行されます。

4.移動コンポーネントライフサイクル関数 - コンポーネントインスタンスがノードツリー内の別の場所に移動されたときに実行されます。

5.切り離されたコンポーネントのライフサイクル関数 - コンポーネントインスタンスがページノードツリーから削除されるときに実行されます。

6.lifetimesコンポーネントライフサイクル宣言オブジェクト

7. pageLifetimes コンポーネントが存在するページのライフサイクル宣言オブジェクト

8. WeChat ミニ プログラムの原則を簡単に説明します

アプレットのページは主に、wxml、wxss、js、json の 4 つの部分で構成されます。wxml はユーザー インターフェイスの構築に使用され、wxss はインターフェイスのスタイルの作成に使用され、js はインターフェイス ロジックの作成に使用され、json はインターフェイスの構成に使用されます。

WeChat のアーキテクチャはデータ駆動型のアーキテクチャ パターンであり、UI とデータが分離されており、すべてのページ更新はデータを変更することで実現する必要があります。

プログラムのレンダリング層とロジック層はそれぞれ 2 つのスレッドによって管理されます。レンダリング層のインターフェイスはレンダリングに WebView を使用し、ロジック層は JsCore スレッドを使用して JS スクリプトを実行します。小さなプログラムには複数のインターフェイスがあるため、レンダリング層には複数の WebView スレッドがあり、これら 2 つのスレッド間の通信は WeChat クライアントを通じて中継され、ロジック層によって送信されたネットワーク リクエストもネイティブを通じて転送されます。

9. WeChat アプレットの関連ファイル タイプについて簡単に説明します。

WXML (WeiXin Markup Language) はフレームワークによって設計されたラベル言語のセットで、基本コンポーネントとイベント システムを組み合わせてページの構造を構築できます。内部は主に WeChat 自体によって定義されたコンポーネントのセットです。

WXSS (WeiXin Style Sheets) は、WXML コンポーネントのスタイルを記述するために使用されるスタイル言語です。

jsロジック処理、ネットワークリクエスト

ページ登録、ページタイトル、タブバーなどのjsonアプレット設定。

アプリ.json

このファイルが使用可能である必要があります。WeChat フレームワークはこれを構成ファイル エントリ (アプレット全体のグローバル構成) として使用するため、このファイルがないとプロジェクトを実行できません。ページの登録、ネットワーク設定、アプレットのウィンドウの背景色、ナビゲーション バーのスタイルの構成、およびデフォルトのタイトルの構成が含まれます。

アプリ.js

このファイルが必要です。ない場合はエラーが発生します。ただし、このファイルを作成するだけで何も記述する必要はなく、後でこのファイル内のアプレットのライフサイクル関数を監視および処理し、グローバル変数を宣言できます。

アプリ.wxss

ミニプログラムの公開スタイル

10. WeChat アプレットのアプリケーション速度を向上させる方法は何ですか?

1.コードを簡素化し、WXML 構造と JS コードの複雑さを軽減します。

2. setData 呼び出しを合理的に使用して、setData の数とデータ量を削減します。

3.必要に応じてサブパッケージの最適化を使用する

11 WeChat アプレットの長所と短所を分析しますか?

アドバンテージ。

  1. 入口が多い

  1. 使いやすい

  1. ネイティブアプリのエクスペリエンスに近い、優れたエクスペリエンス

  1. WeChat のパワー、プロモーションが簡単

  1. より低いコストで

不利益

1. サイズ制限は 2M であるため、大規模なアプリケーションを開発することはできません。

2. モーメントに直接共有することはできません。

3. アプリと同様にレビューして棚に置く必要があり、H5のリリースよりも面倒

4. WeChatには小規模プログラムの開発にも制限がある

12. ミニ プログラムと H5 の違いは何ですか?

  1. 動作環境の違いです

従来の HTML5 動作環境は Webview を含むブラウザですが、WeChat アプレットの動作環境は完全なブラウザではなく、ブラウザ カーネルに基づいて WeChat 開発チームによって完全に再構築された組み込みパーサーであり、特に HTML5 向けに最適化されています。アプレット. は、独自に定義された開発言語標準により、アプレットのパフォーマンスが向上します。

  1. 開発費の違い

WeChat 内でのみ実行されるため、ブラウザの互換性を心配する必要はなく、本番環境での予期せぬ素晴らしいバグを心配する必要もありません。

3. システムレベルの権限への異なるアクセス

システムレベルの権限は WeChat アプレットとシームレスに接続できます

4. 実稼働環境での流暢な実行

長い間、HTML5 アプリケーションが複雑なビジネス ロジックやリッチなページ インタラクションに直面する場合、そのエクスペリエンスは常に満足のいくものではなく、ユーザー エクスペリエンスを向上させるためには継続的なプロジェクトの最適化が必要です。ただし、WeChat アプレットの独立した動作環境により、

13. WeChat アプレットの非同期リクエストの問題を解決しますか?

1.コードを簡素化し、WXML 構造と JS コードの複雑さを軽減します。

2. setData 呼び出しを合理的に使用して、setData の数とデータ量を削減します。

3.必要に応じてサブパッケージの最適化を使用する

14. ミニ プログラムが WeChat 公式アカウントに関連付けられている場合、ユーザーの一意性をどのように判断しますか?

ユーザーの一意性は、union_id によって区別できます。これは、同じ WeChat オープン プラットフォーム アカウントの下にあるモバイル アプリケーション、Web サイト アプリケーション、およびパブリック アカウント (ミニ プログラムを含む) である限り、ユーザーの Union_id は一意で ある ためです言い換えれば、同じユーザーのUnion_id は、同じ WeChat オープン プラットフォーム上の異なるアプリケーションでも同じです。  

15. アプレットはプルダウン更新をどのように実装しますか?

1. app.json の window オプションまたはページ構成でenablePullDownRefreshを有効にする必要があります。

2. プルダウンの更新は、wx.startPullDownRefresh によってトリガーでき、呼び出し後にプルダウンの更新アニメーションがトリガーされ、その効果はユーザーの手動のプルダウンの更新と一致します。

3. データ更新の処理後、wx.stopPullDownRefresh は現在のページのプルダウン更新を停止できます。

4.ユーザーがプルダウン更新を実行すると、onPullDownRefresh関数がトリガーされます。

16. バインドタップとキャッチタップの違いは何ですか?

1. バインド イベント バインディングはバブリング イベントのバブリング アップを妨げませんが、キャッチ イベント バインディングはバブリング イベントのバブリング アップを防ぐことができます。

17. wx.navigateTo()、wx.redirectTo()、wx.switchTab()、wx.navigateBack()、wx.reLaunch() の違いは何ですか?

wx.navigateTo:

現在のページを保持し、アプリケーション内のページにジャンプし、wx.navigateBack を使用して元のページに戻るために使用されます。ページ数がそれほど多くないアプレットの場合、読み込み速度を向上させるために、通常は wx.navigateTo を使用してジャンプして元のページに戻ることをお勧めします。ページ数が多すぎる場合にはお勧めしません。

wx.redirectTo:

ページが多すぎると、予約されたページが WeChat によってアプレットに割り当てられたメモリを占有するか、WeChat によって制限されている 5 層のページ スタックに達します。このとき、wx.redirectTo を考慮する必要があります。wx.redirectTo() は、現在のページを閉じて、アプリケーション内のページにジャンプするために使用されます。このようなジャンプにより、ジャンプ前にページが実行メモリを占有することを防ぐことができますが、戻るときにページを再ロードする必要があるため、返されたページの表示時間が長くなります。

wx.reLaunch:

wx.reLaunch() と wx.redirectTo() の目的は基本的に同じですが、wx.reLaunch() が最初にメモリ内のすべての予約ページを閉じてから、ターゲット ページにジャンプする点が異なります。

wx.switchTab:

タブ バーにジャンプするページの場合は、最初にタブ バー以外のページをすべて閉じる wx.switchTab() を選択するのが最善です。次に、wx.reLaunch() を選択することもできます。これは、非タブ バーからタブ バーへのジャンプ、またはタブ バー間のジャンプも実現でき、その効果は wx.switchTab() と同等です。他のジャンプ API を使用してタブ バーにジャンプすると、ジャンプは失敗します。

wx.navigateBack:

現在のページを閉じて、前のページまたは複数レベルのページに戻るために使用します。開発者は getCurrentPages() を通じて現在のページ スタックを取得し、返すレイヤーの数を決定できます。この API で入力する必要がある唯一のパラメータは、返されるページ数を示すデルタです。デルタの値が返すことができるページ数より大きい場合は、ユーザーがアプレットに入った最初のページに戻ります。デルタの値が入力されていない場合は、デフォルトの 1 (デフォルトは 0 ではないことに注意してください)、つまり前のページに戻ります。

18. 小さなプログラムと Vue の違いは何ですか?

1. データリクエスト

データをリクエストするためにページがロードされるとき、2 つのフックの使用は似ています。Vue は通常、作成またはマウントされたデータをリクエストしますが、小規模なプログラムでは、onLoad または onShow でデータをリクエストします。

2. データバインディング

Vue が変数の値を要素の属性に動的にバインドする場合、変数の前にコロンが追加されます。

アプレットが変数の値を要素の属性にバインドするとき、変数の値は 2 つの中括弧で囲まれます。括弧がない場合は、文字列とみなされます。

3. 表示非表示

vueでは、 v-if と v-show を使用して要素の表示と非表示を制御します

アプレットでは、wx-if と hidden を使用して要素の表示と非表示を制御します。

4.データ処理

Vue : v-on:even を使用してイベントをバインドするか、@event を使用してイベントをバインドします

<button v-on:click="counter += 1">1 追加</button>

<button v-on:click.stop="counter+=1">Add1</button> //イベントのバブリングを防止します

小規模なプログラムでは、bindtap (bind+event) または catchtap (catch+event) を使用してイベントをバインドします。

<button bindingtap="noWork">明日は仕事がありません</button>

<button catchtap="noWork">明日は仕事がありません</button> //イベントのバブリングを防止します

5. バインディングイベントパラメータの受け渡し

Vueでは、イベントをトリガーするメソッドの仮パラメータとして渡すデータを渡す必要があります。

<button @click="say('明日は仕事になりません')"></button>

新しいビュー({

  アプリ'、

  メソッド:{

    言う(引数){

    consloe.log(引数)

    }

  }

})

アプレットでは、イベントをバインドするメソッドでパラメータを直接渡すことはできないため、パラメータを属性値として要素の data 属性にバインドし、メソッドで e.currentTarget.dataset を渡す必要があります。 *入手方法

<view class='tr' bindingtap='toApprove' data-id="{ {item.id}}"></view>

ページ({

データ:{

    理由:''

}、

toApprove(e) {

    let id = e.currentTarget.dataset.id;

  }

})

19. 小さなプログラムとネイティブアプリ、どちらが優れていますか?

ミニプログラムは、開発コストが低く、顧客獲得コストが低く、公式アカウントをダウンロードする必要がないという利点に加えて、サービスリクエストの遅延とユーザーエクスペリエンスの点で大幅に改善され、複雑なサービス機能を搭載できるようになりました。ユーザーがより良いユーザーエクスペリエンスを得ることができるようにします。

違い

  • ネイティブ アプリはダウンロードする必要がありますが、アプレットはダウンロードする必要がなく、読み込み時間は短いだけです
  • ネイティブAPPのプラットフォームが異なるため、AppleとAndroidの2つのバージョンを開発するか、混合開発を採用する必要があります。アプレットはすぐに開いたり閉じたりする必要はありません。Android ユーザーはデスクトップに送信することもでき、ネイティブ APP をある程度置き換えることができます。
  • WeChat のミニプログラムの制限は 200 万であるため、ネイティブ アプリはミニプログラムよりも多くの機能を実装できます。

アドバンテージ:

  1. インストールする必要はなく、開いて使用するだけで、使用後は消えます。トラフィックを節約し、インストール時間を節約します。
  2. 開発コストの削減
  1. サービスがより速く、より便利になり、ユーザーの敷居が大幅に下がります。宣伝しやすい

欠点がある

  1. 大規模なアプリケーションの場合、ネイティブ APP のすべての機能を実現することはできません。
  2. 取得できるユーザー データは非常に限られており、WeChat が公開するユーザー データは基本的にアバター、ニックネーム、および特定の友人関係です。自分にとってのデータの重要性を明確に考慮する必要があります。
  1. 小さくて美しく、垂直方向にあるため、機能の複雑さは限られており、巨大なユニコーンを作りたい場合は、Alipayのように、高周波の厳格な需要が必要ですが、複雑すぎないようにする必要があります。

マルチタスクを実行する方法がないので、やめましょう。製品が特定のシナリオのニーズを満たして一定期間内に目標を達成できない場合、それを達成するのはさらに難しくなります。

20. 小規模プログラムのリリースプロセス(開発プロセス)

1. WeChat ミニ プログラム アカウントの登録を申請します 注: アカウントを登録すると、WeChat 開発者ツールをダウンロードして新しいプロジェクトを作成するときに入力する必要がある AppID が表示されます。そうでないと、多くの機能が動作しません、プレビュー、コードのアップロードなど。

2. WeChat 開発ツールを使用して新しいプロジェクトを作成します。

3. ビジネス ニーズに応じてアプレットを構成し、ビジネス コードを開発します。

4. リクエストの送信が含まれる場合は、アプレットのバックグラウンド管理ページでサーバーの正当なドメイン名を構成するか、ドメイン名の検証を閉じる必要があります (展開では正当なドメイン名を構成する必要があり、ドメイン名は https プロトコルである必要があります) 、提出されています) (http と https の違いについて質問される場合があります)

5. 開発が完了したら、「コードのアップロード」をクリックしてアプレットを試用版に送信します

6. 試用版が正しいことを確認した後、レビューに提出し、レビューを通過すると正式に起動できます。

ユニアプリ

  1. ユニアプリのメリットとデメリット

   アドバンテージ:

   a. 一連のコードにより複数のコードが生成される場合があります。

   b. 学習コストが低く、構文は V​​ue であり、コンポーネントは小さなプログラムです

   c. 高い拡張力

   d. HBuilderX を使用して開発し、vue 構文をサポートする

   e. H5 呼び出しのネイティブ機能に対するシステムの制限を突破する

   欠点:

   a. 短期間に誕生したものなので、完璧ではない部分も多くあります

   b. 小さなコミュニティ

   c. 問題に関する公式フィードバックがタイムリーではない

   d. Android プラットフォームでは、WeChat アプレットや iOS よりも劣ります

   e. ファイル名の制限

  1. uniapp のメインディレクトリとファイルの役割

ページ.json

設定ファイル、グローバル ページ パス設定、アプリケーション ステータス バー、ナビゲーション バー、タイトル、ウィンドウの背景色の設定など。

main.js

エントリ ファイルの主な機能は、vue インスタンスを初期化し、グローバル コンポーネントを定義し、vuex などの必要なプラグインを使用することです。uniapp は vue-router を使用できず、ルーティングは pages.json で構成する必要があることに注意してください。開発者が vue-router を使用したい場合は、プラグイン マーケットで変換プラグインを見つけることができます。

app.vue

uni-app の主要コンポーネントであり、ページ エントリ ファイルである App.vue の下ですべてのページが切り替わります。ただし、App.vue 自体はページではないため、ここにビュー要素を記述することはできません。なお、アプリケーションのライフサイクルはApp.vueでのみ監視可能であり、ページ内での監視は無効となります。

ページ

ページ管理部分は、ページまたはコンポーネントを保存するために使用されます。

マニフェスト.json

ファイルはアプリケーションの構成ファイルであり、アプリケーションの名前、アイコン、権限などを指定するために使用されます。HBuilderX で作成したプロジェクトの場合はルート ディレクトリにこのファイルがあり、CLI で作成したプロジェクトの場合は src ディレクトリにこのファイルがあります。

パッケージ.json

構成拡張機能。詳細については、公式 Web サイトの説明 package.json の概要を参照してください。

  1. ユニアプリのライフサイクル

ページのライフサイクル

1. onLoad: ページが初めてロードされるときにトリガーされ、onLoad のパラメーターで現在のページを開くためのパス内のパラメーターを取得できます。

       2. onShow: 読み込み完了後、背景が前景に切り替わったとき、またはページが再入力されたときにトリガーされます。

       3. onReady: ページが初めてレンダリングされるときにトリガーされます。

       4. onHide: 前景から背景に切り替えるか、他のページに入ることでトリガーされます。

       5. onUnload: ページがアンロードされるときにトリガーされます。

       6. onPullDownRefresh: ユーザーのプルダウン アクションを監視します。

       7. onReachBottom: ページボトムイベントの処理関数

       8. onShareAppMessage: ユーザーは右上隅をクリックして転送します

      

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

uni-app コンポーネントでサポートされるライフサイクルは、vue 標準コンポーネントのライフサイクルと同じです。ここにはページレベルの onLoad やその他のライフサイクルはありません。

関数名

説明する

プラットフォームの違いの説明

関数名

説明する

作成前

インスタンスの初期化後に呼び出されます

作成前

インスタンスの初期化後に呼び出されます

作成した

インスタンスの作成直後に呼び出されます

作成した

インスタンスの作成直後に呼び出されます

マウント前

マウントが開始される前に呼び出されます

マウント前

マウントが開始される前に呼び出されます

取り付けられた

インスタンスにマウントした後に呼び出されます。注: すべてのサブコンポーネントがここにマウントされるかどうかはわかりません。サブコンポーネントが完全にマウントされた後に操作を実行する必要がある場合は、$nextTickVue 公式ドキュメントを使用できます。

取り付けられた

インスタンスにマウントした後に呼び出されます。注: すべてのサブコンポーネントがここにマウントされるかどうかはわかりません。サブコンポーネントが完全にマウントされた後に操作を実行する必要がある場合は、$nextTickVue 公式ドキュメントを使用できます。

更新前

データが更新されるとき、仮想 DOM にパッチが適用される前に呼び出されます。

H5 プラットフォームでのみサポートされています

更新前

データが更新されるとき、仮想 DOM にパッチが適用される前に呼び出されます。

更新しました

このフックは、データ変更により仮想 DOM が再レンダリングされ、パッチが適用された後に呼び出されます。

H5 プラットフォームでのみサポートされています

更新しました

このフックは、データ変更により仮想 DOM が再レンダリングされ、パッチが適用された後に呼び出されます。

前に破壊する

インスタンスが破棄される前に呼び出されます。このステップでは、インスタンスはまだ完全に利用可能です

前に破壊する

インスタンスが破棄される前に呼び出されます。このステップでは、インスタンスはまだ完全に利用可能です

  1. グローバル変数 globalData についての理解

globalDate は WeChat アプレットと同じであり、グローバルに定義されたオブジェクトであり、vuex に似ており、グローバル状態を共有するために使用されます。コンポーネントとページで getApp().globalData を使用してグローバル変数を取得および変更できます。 。

//app.vue

<スクリプト> 

    デフォルトのエクスポート { 

        グローバルデータ: { 

            メッセージ: 'こんにちは' 

        }

    } 

</script>

// 他のページのグローバル変数を呼び出したり変更したりする

getApp().globalData.msg= 'こんにちは'

  1. 条件付きコンパイルの使用

各プラットフォームには独自の特性があるため、クロスプラットフォームにできない状況も発生します。したがって、条件付きコンパイルのモードがあり、JS ロジック コードだけでなく、テンプレートや CSS スタイルも特定の環境では有効にするが、他の環境では有効にしないように設定できます。

//テンプレート

<!-- #ifdef MP-WEIXIN -->

<!-- アプレット内でのみ有効 -->

<view>私は WeChat アプレットです</view>

<!-- #endif -->

<!-- #ifdef アプリプラス -->

<!-- アプリ内でのみ有効 -->

<view>私はアプリです</view>

<!-- #endif -->

//js

// #ifndef H5

// h5 だけがこの API を使用しないことを示します

uni.createAnimation(OBJECT)

// #endif

//CSS

/* #ifdef MP-WEIXIN */

/* アプレット内でのみ有効 */

.header {

       赤色

}

/* #endif */

  1. Uniappで写真をアップロードする方法

//ドキュメントを選択します

uni.chooseFile({

  カウント: 6, //デフォルトは 100

  拡張子:['.zip','.doc'],

    成功: 関数 (res) {

        console.log(JSON.stringify(res.tempFilePaths));

    }

});

// 画像ファイルを選択

uni.chooseFile({

  カウント: 10、

  タイプ: '画像'、

  成功 (解像度) {

    // tempFilePath は、画像を表示するための img タグの src 属性として使用できます

    const tempFilePaths = res.tempFiles

  }

})

  1. uni.request パッケージ

const request = (config) => {

       // APIUrl をハンドルします

       config.url = 'リンクサーバーアドレス' + config.url;

       if(!config.data){

              config.data = {};

       }

       letpromise = new Promise(function(resolve,拒否) {

              uni.request(config).then(responses => {

                     // 例外

                     if (応答[0]) {

                            拒否({メッセージ: "ネットワークタイムアウト"});

                     } それ以外 {

                            let 応答 = 応答[1].data;

                            解決(応答);

                     }

              }).catch(エラー => {

                     拒否(エラー);

              })

       })

       返却の約束。

};

デフォルトのリクエストをエクスポートします。

  1. rpx、px、em、rem、%、vh、vw の違いは何ですか?

      

RPX

画面幅を750分割したことに相当し、1分割は1rpxとなります。

ピクセル

絶対単位、ページは正確なピクセルで表示されます

えっと

相対単位。親ノードのフォントを基準にして計算されます。

レム

相対単位。ルート ノード html のフォント サイズに基づいて計算されます。

%

一般的に言えば、親要素を基準にして

うーん

ウィンドウの高さ、1vh はウィンドウの高さの 1% に等しい

vm

ウィンドウ幅、1vw はウィンドウ幅の 1% に等しい

  1. ローカルデータの保存と受信

Storage: uni.setStorage({key: "プロパティ名", data: "値"}) // 非同期

              uni.setStorageSync(KEY,DATA) //同期

       受信: uni.getStorage({key: "プロパティ名", success(res){res.data}}) //非同期

              uni.getStorageSync(KEY) //同期

       Remove: uni.removeStorage(OBJECT) //指定されたキーをローカル キャッシュから非同期的に削除します。

              uni.removeStorageSync(KEY) //指定されたキーをローカル キャッシュから同期的に削除します。

       Clear: uni.clearStorage() //ローカル データ キャッシュをクリアします。

              uni.clearStorageSync() //ローカル データ キャッシュを同期的にクリアします。

  1. ユニアプリイベントバス

イベント バスは、すべてのコンポーネントが同じイベント センターを共有するのと同じように、コンポーネント通信のブリッジとして使用でき、イベントを送信または受信するためにセンターに登録できるため、コンポーネントは他のコンポーネントに並行して上下に通知できますが、便利すぎるので使うと注意しないとメンテナンスが困難な災害を引き起こす可能性があります

トリガーイベント

       uni では、グローバル カスタム イベントは uni.$emit(eventName, OBJECT) によってトリガーできます。追加のパラメータはリスナー コールバックに渡されます。

イベントを聞く

uni.$on(イベント名,コールバック)

グローバル カスタム イベントをリッスンします。イベントは uni.$emit によってトリガーでき、コールバック関数はイベント トリガー関数に渡されるすべての追加パラメーターを受け取ります。

一度だけ聞いてください

uni.$once(イベント名,コールバック)

グローバル カスタム イベントをリッスンします。イベントは uni.$emit によって起動できますが、それは 1 回だけであり、最初の起動後にリスナーは削除されます。

モニターを削除する

uni.$off([イベント名, コールバック])

グローバル カスタム イベント リスナーを削除します。

おすすめ

転載: blog.csdn.net/weixin_53583255/article/details/128026813