目次
ページ ライフ サイクル
组件生命周期
ホームページ ウェブフロントエンド uni-app ユニアプリのライフサイクルの詳細な分析

ユニアプリのライフサイクルの詳細な分析

Feb 24, 2022 pm 05:56 PM
uniapp

この記事では、uniapp 宣言サイクルに関する関連知識を紹介します。主に、アプリケーション宣言サイクル、ページ ライフ サイクル、コンポーネント ライフ サイクルに関連する問題を紹介します。皆様のお役に立てれば幸いです。

ユニアプリのライフサイクルの詳細な分析

## 推奨: 「

uniapp チュートリアル

アプリケーション ライフ サイクル

uni-app次のアプリケーション ライフ サイクル関数をサポートします:

##関数名 onLaunch uni-apponShow uni -apponHideuni-apponErroruni-apponUniNViewMessagenvueonUnhandledRejectiononPageNotFoundonThemeChange

注意

  • アプリケーションのライフサイクルは App.vue でのみ監視でき、他のページでの監視は無効です。
  • onlaunch のページにジャンプします。白い画面エラーが発生した場合は、onlaunch ライフサイクルのページにジャンプするためのナビゲーションを参照してください。 注 - DCloud Q&A
  • onPageNotFound このページは実際には(例: カード、ミニ プログラム コードの共有によって) 開かれ、ページが存在しないことが判明した場合、トリガーされます。存在しないページへの API ジャンプはトリガーされません (uni.navigateTo など) )

ページ ライフ サイクル

uni-app 次のページ ライフ サイクル関数をサポートします:

説明
初期化が完了したときにトリガーされます (グローバルに 1 回だけトリガーされます)
When が開始するか、バックグラウンドからフォアグラウンドに入って
を表示します。 がバックグラウンドからバックグラウンドに入ると、 foreground
がエラーを報告するとトリガーされます
はい ページによって送信されたデータを監視するには、nvue と vue の通信を参照してください。
未処理の Promise 拒否イベントリスニング機能 (2.8.1)
このページにはリスニング機能がありません
システムテーマの変更を聞く
# #関数名説明プラットフォームの違いの説明最小バージョンonInitページの初期化をリッスンします。そのパラメーターは、前のページで渡されたデータである onLoad パラメーターと同じです。パラメーターのタイプはオブジェクト (ページ パラメーターの転送に使用) で、トリガー時間は onLoad よりも前ですBaidu Mini Program3.1.0 onLoad ページの読み込みを監視します。パラメータは前のページで渡されたデータです、パラメータのタイプはオブジェクト (ページパラメータに使用) です。onShow## の例を参照してください。 #onReady onHide## が実行される前にトリガーされることに注意してください。ページエントリのアニメーションが完了しました。 #Listen page HideonUnloadListen page unload ウィンドウ サイズの変更を聞く ユーザーのプルダウン アクションを監視します。通常はプルダウンの更新に使用されます。例を参照してくださいページが一番下までスクロールしたときのイベント (スクロールビューではなく、下)、データの次のページをプルダウンするためによく使用されます。詳細については、以下のメモを参照してくださいタブがクリックされるとトリガーされるパラメーターは Object です。詳細については、以下の注記を参照してください。WeChat ミニ プログラム、QQ ミニ プログラム、Alipay ミニ プログラム、Baidu ミニ プログラム、H5、アプリユーザーは右上隅をクリックして共有します#WeChat アプレット、QQ アプレット、Alipay アプレット、Byte アプレット、Feishu アプレット、Kuaishou アプレットonPageScrollnvue はまだサポートしていませんApp、H5## です。 #onBackPressページリターンをリッスン、リターンイベント = {from:backbutton, navigateBack}、backbutton はソースが左上隅または Android のリターンキー; navigateBack はソースが uni であることを示します navigateBack; 詳細な説明と使用法: onBackPress の詳細な説明。 Alipay アプレットは実際のマシンによってのみトリガーでき、navigateBack によって引き起こされない返品のみを監視でき、デフォルトの動作を防ぐことはできません。 1.6.0onNavigationBarSearchInputconfirmedネイティブ タイトル バーの検索入力ボックスの検索を聞くイベント、ユーザー ソフトキーボードの「検索」ボタンがクリックされたときに発生します。 App、H51.6.0onNavigationBarSearchInputClickedネイティブ タイトル バーの検索入力ボックスのクリック イベントをリッスンします (ページ数) .json これは、disabled の searchInput 構成が true の場合にのみトリガーされます) App, H51.6.0onShareTimelineリスニング ユーザーは右上隅をクリックして友達のサークルに転送しますWeChat ミニ プログラム2.8.1 onAddToFavoritesユーザーの右上隅のクリックを監視します。コレクションWeChat ミニ プログラム2.8.1

onInit使用上の注意

  • Baidu Mini Program Basic Library 3.260以降のみがonInitライフサイクルをサポートします
  • 他のバージョンまたはプラットフォームはonLoadライフサイクルを使用できます互換性があるため、同じロジックを繰り返し実行しないように注意してください
  • ページ パラメーターに依存しないロジックは、作成されたライフ サイクルで直接置き換えることができます

#onReachBottom使用メモはページ内にあります。json で特定のページの下部にトリガー距離 onReachBottomDistance を定義します。たとえば、50 に設定すると、ページが下から 50px までスクロールされたときに、 onReachBottom イベントがトリガーされます。

scroll-view が使用され、ページがスクロールしない場合、一番下のイベントはトリガーされません。スクロールビューが一番下までスクロールするイベントについては、スクロールビューのドキュメントを参照してください。

onPageScroll (スクロール監視、スクロール監視、スクロールイベント) パラメータの説明:



#ページの表示を聞いてください。ページが画面に表示されるたびにトリガーされます。これには、下位レベルのページ ポイントから戻って現在のページを表示する場合も含まれます

監視ページの最初のレンダリングが完了しました。レンダリング速度が速い場合、





##onResize
アプリ、WeChatアプレット
onPullDownRefresh


onReachBottom

##onTabItemTap
onShareAppMessage

ページのスクロールをリッスンします。パラメータは Object です。
##onNavigationBarButtonTap ネイティブ タイトル バー ボタンのクリック イベントをリッスンします。パラメーターは Object

app、H5、Alipay アプレット
##onNavigationBarSearchInputChanged ネイティブ タイトル バーの検索入力の入力内容を監視するボックス イベントの変更 App,H5
属性タイプ説明##scrollTop
Number ページが垂直方向にスクロールされた距離 (単位 px)
Note

    ##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);
    },
    ログイン後にコピー
が返されるのを防ぐことができなくなります。 onTabItemTap

から返された json オブジェクトの説明:

Attribute #indexpagePathtext
Type Description
String クリックされた tabItem のシリアル番号 (0
# から始まる) #String クリックされた tabItem のページ パス
String クリックされた tabItem のボタン テキスト
Note

onTabItemTap は、現在のタブ項目をクリックしたり、現在のページをスクロールしたり更新したりするためによく使用されます。別のタブ項目をクリックすると、ページの切り替えが確実にトリガーされます。
  • ページにジャンプせずにアプリ側で tabitem をクリックしたい場合は、onTabItemTap は使用できません。plus.nativeObj.view を使用して、元の tabitem をカバーするブロックを配置し、クリック イベントをインターセプトできます。 。
  • Alipay ミニ プログラム プラットフォームの onTabItemTap は、現在ではないタブ項目をクリックした後にトリガーされるため、クリックして先頭に戻る操作の実装には使用できません
  • onTabItemTap : function(e) {
        console.log(e);
        // e的返回格式为json对象: {"index":0,"text":"首页","pagePath":"pages/index/index"}
    },
    ログイン後にコピー
onNavigationBarButtonTap

パラメータの説明 :

Attribute##index
onNavigationBarButtonTap : function (e) {
    console.log(e);
    // e的返回格式为json对象:{"text":"测试","index":0}
}
ログイン後にコピー
Type Description
Number ネイティブ タイトル バー ボタン配列の添え字
onBackPress

コールバック パラメータ オブジェクトの説明:

Attribute#fromAlipay アプレットはこのフィールドを返すことをサポートしていません
export default {
    data() {
        return {};
    },
    onBackPress(options) {
        console.log('from:' + options.from)
    }
}
ログイン後にコピー

注意

  • nvue 页面weex编译模式支持的生命周期同weex,具体参考:weex生命周期介绍。
  • 支付宝小程序真机可以监听到非navigateBack引发的返回事件(使用小程序开发工具时不会触发onBackPress),不可以阻止默认返回行为

组件生命周期

uni-app 组件支持的生命周期,与vue标准组件的生命周期相同。这里没有页面级的onLoad等生命周期:

Type Description
String リターン動作をトリガーするソース: 'backbutton' - 左上隅のナビゲーション バー ボタンと Android のリターン キー、'navigateBack' - uni.navigateBack() メソッド。
函数名 说明 平台差异说明 最低版本
beforeCreate 在实例初始化之后被调用。详见

created 在实例创建完成后被立即调用。详见

beforeMount 在挂载开始之前被调用。详见

mounted 挂载到实例上去之后调用。详见 注意:此处并不能确定子组件被全部挂载,如果需要子组件完全挂载之后在执行操作可以使用$nextTickVue官方文档

beforeUpdate 数据更新时调用,发生在虚拟 DOM 打补丁之前。详见 仅H5平台支持
updated 由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。详见 仅H5平台支持
beforeDestroy 实例销毁之前调用。在这一步,实例仍然完全可用。详见

destroyed Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。详见

推荐:《uniapp教程

以上がユニアプリのライフサイクルの詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Webstormが開発したuniappプロジェクトのプレビューを開始する方法 Webstormが開発したuniappプロジェクトのプレビューを開始する方法 Apr 08, 2024 pm 06:42 PM

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

uniappとmuiではどちらが優れていますか? uniappとmuiではどちらが優れていますか? Apr 06, 2024 am 05:18 AM

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

uniapp はどのような開発ツールを使用しますか? uniapp はどのような開発ツールを使用しますか? Apr 06, 2024 am 04:27 AM

UniApp は HBuilder を使用します

uniapp を学習するにはどのような基礎が必要ですか? uniapp を学習するにはどのような基礎が必要ですか? Apr 06, 2024 am 04:45 AM

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

ユニアプリのデメリットは何ですか ユニアプリのデメリットは何ですか Apr 06, 2024 am 04:06 AM

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

ユニアプリとネイティブ開発のどちらが優れていますか? ユニアプリとネイティブ開発のどちらが優れていますか? Apr 06, 2024 am 05:06 AM

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

Flutter と uniapp の詳細な比較: 類似点、相違点、特徴を探ります Flutter と uniapp の詳細な比較: 類似点、相違点、特徴を探ります Dec 23, 2023 pm 02:16 PM

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

uniapp は小さなプログラムの開発にどのコンポーネント ライブラリを使用しますか? uniapp は小さなプログラムの開発にどのコンポーネント ライブラリを使用しますか? Apr 06, 2024 am 03:54 AM

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

See all articles