uniapp のページ間でパラメータの受け渡しとポストバックを実装する方法
uniapp でページ間のパラメータの受け渡しと戻りを実装する方法
1. パラメータの受け渡し
uniapp では、パスを介してパラメータを渡すことができます。 、props パラメータおよび vuex パラメータは、ページ間でパラメータを転送するために使用されます。
- パラメータのパス渡し
パラメータのパス渡しとは、URL の直後にパラメータをつなぎ合わせて、別のページにジャンプするときに渡すことを指します。ジャンプする場合は、URL の後にパラメータを追加することで次のページにパラメータを渡します。次のページでは、uni.getStorageSync() メソッドを通じてパラメータの値を取得できます。
// 页面A uni.navigateTo({ url: '/pages/B/B?param1=123¶m2=456' }) // 页面B onLoad: function (options) { console.log(options.param1) //输出123 console.log(options.param2) //输出456 }
- props パラメータの受け渡し
props パラメータの受け渡しとは、パラメータをサブコンポーネントの属性として渡すことです。親コンポーネントでサブコンポーネントを使用する場合、追加の属性がパラメータを渡します。子コンポーネントの this.$props を通じて、渡されたパラメーターを取得します。
// 父组件 <template> <child-component :param1="param1"></child-component> </template> <script> export default { data() { return { param1: '123', param2: '456' } } } </script> // 子组件 <template> <view>{{ $props.param1 }}</view> <view>{{ $props.param2 }}</view> </template>
- vuex パラメータの受け渡し
vuex は uniapp の状態管理ツールで、ページ間でパラメータを転送するために vuex を使用できます。パラメーターを送信する場合は、vuex の状態でパラメーターを保存します。パラメータを受け取る場合は、vuex の getters メソッドを通じてパラメータの値を取得します。
// 页面A <template> <button @click="sendParam">传递参数</button> </template> <script> export default { methods: { sendParam() { this.$store.commit('SET_PARAM', '参数值') uni.navigateTo({ url: '/pages/B/B' }) } } } </script> // 页面B onLoad: function () { console.log(this.$store.getters.param) //输出参数值 } // store import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const store = new Vuex.Store({ state: { param: '' }, mutations: { SET_PARAM(state, value) { state.param = value } }, getters: { param: state => state.param } }) export default store
2. ポストバック
uniapp では、ページ間のポストバックは、uni.navigateBack メソッドと EventBus イベント バスを通じて実現できます。
- uni.navigateBackbackback
uni.navigateBack メソッドは、前のページに戻るために使用され、パラメータを渡すことで戻ることができます。
// 页面A uni.navigateTo({ url: '/pages/B/B' }) // 页面B uni.navigateBack({ delta: 1, success: function () { uni.getOpenerEventChannel().emit('acceptDataFromB', {data: '回传的参数'}) } }) // 页面A onLoad: function () { const eventChannel = this.getOpenerEventChannel() eventChannel.on('acceptDataFromB', function (data) { console.log(data) //输出{data: '回传的参数'} }) }
- EventBus イベント バス ポストバック
EventBus はコンポーネント間の通信用ツールです。uniapp では、uni.$emit を使用してイベントと uni を公開できます。$onイベントをサブスクライブして返します。
// 页面A // main.js Vue.prototype.$eventBus = new Vue() // 页面B this.$eventBus.$emit('acceptDataFromB', {data: '回传的参数'}) uni.navigateBack({ delta: 1 }) // 页面A this.$eventBus.$on('acceptDataFromB', function (data) { console.log(data) //输出{data: '回传的参数'} })
上記の方法により、uniappのページ間のパラメータの受け渡しと戻りを実装することができます。 path パラメータの受け渡し、props パラメータの受け渡し、vuex パラメータの受け渡し、uni.navigateBack の受け渡し、EventBus の受け渡しなどを通じて、実際のニーズに応じて適切なメソッドを選択して、パラメータの受け渡しを実現できます。
以上が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 は初心者に適しており、ネイティブ開発は高いパフォーマンスとシームレスなエクスペリエンスを追求する複雑なアプリケーションに適しています。

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

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