ユニアプリのライフサイクルの詳細な分析
この記事では、uniapp 宣言サイクルに関する関連知識を紹介します。主に、アプリケーション宣言サイクル、ページ ライフ サイクル、コンポーネント ライフ サイクルに関連する問題を紹介します。皆様のお役に立てれば幸いです。
uniapp チュートリアル」
アプリケーション ライフ サイクルuni-app次のアプリケーション ライフ サイクル関数をサポートします:
説明 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
uni-app | 初期化が完了したときにトリガーされます (グローバルに 1 回だけトリガーされます)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
When | uni -app が開始するか、バックグラウンドからフォアグラウンドに入って
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
を表示します。 | uni-app がバックグラウンドからバックグラウンドに入ると、 foreground
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
uni-app | がエラーを報告するとトリガーされます
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
はい | nvue ページによって送信されたデータを監視するには、nvue と vue の通信を参照してください。
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
未処理の Promise 拒否イベントリスニング機能 (2.8.1) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
このページにはリスニング機能がありません | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
システムテーマの変更を聞く |
説明 | プラットフォームの違いの説明 | 最小バージョン | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ページの初期化をリッスンします。そのパラメーターは、前のページで渡されたデータである onLoad パラメーターと同じです。パラメーターのタイプはオブジェクト (ページ パラメーターの転送に使用) で、トリガー時間は onLoad よりも前です | Baidu Mini Program | 3.1.0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ページの読み込みを監視します。パラメータは前のページで渡されたデータです、パラメータのタイプはオブジェクト (ページパラメータに使用) です。 | |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#ページの表示を聞いてください。ページが画面に表示されるたびにトリガーされます。これには、下位レベルのページ ポイントから戻って現在のページを表示する場合も含まれます | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
監視ページの最初のレンダリングが完了しました。レンダリング速度が速い場合、 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
##onResize |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
アプリ、WeChatアプレット |
onPullDownRefresh |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
onReachBottom |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
##onTabItemTap | タブがクリックされるとトリガーされるパラメーターは Object です。詳細については、以下の注記を参照してください。||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
onShareAppMessage | ユーザーは右上隅をクリックして共有します||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
onPageScroll |
ページのスクロールをリッスンします。パラメータは Object です。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
##onNavigationBarButtonTap | ネイティブ タイトル バー ボタンのクリック イベントをリッスンします。パラメーターは Object | App、H5|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#onBackPress | ページリターンをリッスン、リターンイベント = {from:backbutton, navigateBack}、backbutton はソースが左上隅または Android のリターンキー; navigateBack はソースが uni であることを示します navigateBack; 詳細な説明と使用法: onBackPress の詳細な説明。 Alipay アプレットは実際のマシンによってのみトリガーでき、navigateBack によって引き起こされない返品のみを監視でき、デフォルトの動作を防ぐことはできません。 |
app、H5、Alipay アプレット |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
##onNavigationBarSearchInputChanged | ネイティブ タイトル バーの検索入力の入力内容を監視するボックス イベントの変更 | App,H5 | 1.6.0||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
onNavigationBarSearchInputconfirmed | ネイティブ タイトル バーの検索入力ボックスの検索を聞くイベント、ユーザー ソフトキーボードの「検索」ボタンがクリックされたときに発生します。 | App、H5 | 1.6.0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
onNavigationBarSearchInputClicked | ネイティブ タイトル バーの検索入力ボックスのクリック イベントをリッスンします (ページ数) .json これは、disabled の searchInput 構成が true の場合にのみトリガーされます) | App, H5 | 1.6.0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
onShareTimeline | リスニング ユーザーは右上隅をクリックして友達のサークルに転送します | WeChat ミニ プログラム | 2.8.1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
onAddToFavorites | ユーザーの右上隅のクリックを監視します。コレクション | WeChat ミニ プログラム | 2.8.1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
タイプ | 説明 | |
---|---|---|
Number | ページが垂直方向にスクロールされた距離 (単位 px) |
- ##onPageScroll 頻繁なページ変更など、複雑な操作を
- で行う js を記述しないでください。このライフサイクルはレンダリング層でトリガーされるため、非 h5 側では、js がロジック層で実行され、2 つの層間の通信が失われます。スクロール処理中に 2 つのレイヤー間のデータ交換が頻繁にトリガーされると、遅延が発生する可能性があります。
スクロール中にタイトル バーの透明なグラデーションを実現したい場合は、App と H5 の下で、pages.json の titleNView の下のタイプを透明になるように構成できます。参考までに。
- 特定の要素を修正するために天井をスクロールする必要がある場合は、CSS スティッキー レイアウトを使用し、プラグイン マーケットを参照することをお勧めします。プラグインマーケットには他にもjsで実装された天井プラグインがありますが、性能は良くないので、必要に応じて自分で探してください。
- App、WeChat アプレット、および H5 では、参考までに、wxs を使用してスクロールを監視することもできます。また、app-nvue では、bindingx を使用してスクロールを監視できます。
- onBackPress
- は
async
では使用できません。その結果、デフォルトのonPageScroll : function(e) { //nvue暂不支持滚动监听,可用bindingx代替 console.log("滚动距离为:" + e.scrollTop); },
ログイン後にコピー
から返された json オブジェクトの説明:
Type | Description | |
---|---|---|
String | クリックされた tabItem のシリアル番号 (0 | |
# から始まる) #String | クリックされた tabItem のページ パス | |
String | クリックされた tabItem のボタン テキスト |
onTabItemTap は、現在のタブ項目をクリックしたり、現在のページをスクロールしたり更新したりするためによく使用されます。別のタブ項目をクリックすると、ページの切り替えが確実にトリガーされます。
- ページにジャンプせずにアプリ側で tabitem をクリックしたい場合は、onTabItemTap は使用できません。plus.nativeObj.view を使用して、元の tabitem をカバーするブロックを配置し、クリック イベントをインターセプトできます。 。
- Alipay ミニ プログラム プラットフォームの onTabItemTap は、現在ではないタブ項目をクリックした後にトリガーされるため、クリックして先頭に戻る操作の実装には使用できません
onTabItemTap : function(e) { console.log(e); // e的返回格式为json对象: {"index":0,"text":"首页","pagePath":"pages/index/index"} },
ログイン後にコピー
パラメータの説明 :
Type | Description | |
---|---|---|
Number | ネイティブ タイトル バー ボタン配列の添え字 |
コールバック パラメータ オブジェクトの説明:
Type | Description | ||
---|---|---|---|
String | リターン動作をトリガーするソース: 'backbutton' - 左上隅のナビゲーション バー ボタンと Android のリターン キー、'navigateBack' - uni.navigateBack() メソッド。 | Alipay アプレットはこのフィールドを返すことをサポートしていません
函数名 | 说明 | 平台差异说明 | 最低版本 |
---|---|---|---|
beforeCreate | 在实例初始化之后被调用。详见 | ||
created | 在实例创建完成后被立即调用。详见 | ||
beforeMount | 在挂载开始之前被调用。详见 | ||
mounted | 挂载到实例上去之后调用。详见 注意:此处并不能确定子组件被全部挂载,如果需要子组件完全挂载之后在执行操作可以使用$nextTick Vue官方文档 |
||
beforeUpdate | 数据更新时调用,发生在虚拟 DOM 打补丁之前。详见 | 仅H5平台支持 | |
updated | 由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。详见 | 仅H5平台支持 | |
beforeDestroy | 实例销毁之前调用。在这一步,实例仍然完全可用。详见 | ||
destroyed | Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。详见 |
推荐:《uniapp教程》
以上がユニアプリのライフサイクルの詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











WebStorm で UniApp プロジェクト プレビューを起動する手順: UniApp 開発ツール プラグインをインストールする デバイス設定に接続する WebSocket 起動プレビュー

一般に、複雑なネイティブ機能が必要な場合は uni-app が適しており、シンプルなインターフェイスまたは高度にカスタマイズされたインターフェイスが必要な場合は MUI が適しています。さらに、uni-app は、1. Vue.js/JavaScript のサポート、2. 豊富なネイティブ コンポーネント/API、3. 優れたエコシステムを備えています。欠点は、1. パフォーマンスの問題、2. インターフェースのカスタマイズの難しさです。 MUI には、1. マテリアル デザインのサポート、2. 高い柔軟性、3. 広範なコンポーネント/テーマ ライブラリがあります。欠点は、1. CSS への依存性、2. ネイティブ コンポーネントが提供されない、3. エコシステムが小さいことです。

uniapp 開発には次の基礎が必要です: フロントエンド テクノロジ (HTML、CSS、JavaScript) モバイル開発の知識 (iOS および Android プラットフォーム) Node.js のその他の基礎 (バージョン管理ツール、IDE、モバイル開発シミュレーター、または実機のデバッグ経験)

UniApp は、クロスプラットフォーム開発フレームワークとして多くの便利さを備えていますが、欠点も明らかです。ハイブリッド開発モードによってパフォーマンスが制限され、その結果、開く速度、ページのレンダリング、およびインタラクティブな応答が低下します。エコシステムは不完全で、特定の分野のコンポーネントやライブラリが少ないため、創造性や複雑な機能の実現が制限されています。さまざまなプラットフォームでの互換性の問題により、スタイルの違いや API サポートの一貫性の欠如が発生する傾向があります。 WebView のセキュリティ メカニズムはネイティブ アプリケーションとは異なるため、アプリケーションのセキュリティが低下する可能性があります。複数のプラットフォームを同時にサポートするアプリケーションのリリースと更新には、複数のコンパイルとパッケージが必要となり、開発とメンテナンスのコストが増加します。

UniApp とネイティブ開発のどちらを選択する場合は、開発コスト、パフォーマンス、ユーザー エクスペリエンス、および柔軟性を考慮する必要があります。 UniApp の利点は、クロスプラットフォーム開発、迅速な反復、容易な学習、組み込みプラグインですが、ネイティブ開発はパフォーマンス、安定性、ネイティブ エクスペリエンス、スケーラビリティの点で優れています。特定のプロジェクトのニーズに基づいてメリットとデメリットを比較検討し、UniApp は初心者に適しており、ネイティブ開発は高いパフォーマンスとシームレスなエクスペリエンスを追求する複雑なアプリケーションに適しています。

モバイル アプリケーション開発の分野では、Flutter と uniapp という 2 つのクロスプラットフォーム開発フレームワークが大きな注目を集めています。これらの登場により、開発者は複数のプラットフォームを同時にサポートするアプリケーションを迅速かつ効率的に開発できるようになります。ただし、目的や用途は似ていますが、詳細や機能にはいくつかの違いがあります。次に、Flutter と uniapp を詳しく比較し、それぞれの特徴を探っていきます。 Flutte は、Google が開始したオープンソースのモバイル アプリケーション開発フレームワークです。フラッター

小規模プログラムの開発に uniapp が推奨するコンポーネント ライブラリ: uni-ui: uni によって公式に作成され、基本コンポーネントとビジネス コンポーネントが提供されます。 vant-weapp: Bytedance によって制作され、シンプルで美しい UI デザインが特徴です。 taro-ui: JD.com によって作成され、Taro フレームワークに基づいて開発されました。 Fish-design: マテリアル デザイン デザイン スタイルを使用して、Baidu によって制作されました。 naive-ui: Youzan によって制作され、モダンな UI デザイン、軽量でカスタマイズが簡単です。
