Uniapp はページ間でデータを転送する方法を実装しており、特定のコード例が必要です
Uniapp 開発では、ページ間でのデータ転送は非常に一般的な要件です。合理的なデータ転送により、ページジャンプ時のデータ共有とインタラクションを実現できます。この記事では、uniapp でページ間のデータ転送を実装する方法と具体的なコード例を紹介します。
URL パラメーターを使用して保留中のデータを渡すのが、最も一般的で簡単な方法です。ジャンプリンクのURLにパラメータを追加することで、ページ間のデータ転送が可能になります。以下はサンプル コードです。
// ページ A
<text>{{param}}</text> <button @click="navigateToPageB">跳转至页面B</button>
<script><br>デフォルトのエクスポート {<br> data() {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>return { param: 'Hello Uniapp' }</pre><div class="contentsignin">ログイン後にコピー</div></div><p>},<br> メソッド: {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>navigateToPageB() { uni.navigateTo({ url: '/pages/pageB?pageParam=' + this.param }) }</pre><div class="contentsignin">ログイン後にコピー</div></div><p>}<br>} <br></script>
// ページ B
<text>{{pageParam}}</text>
<script><br>デフォルトのエクスポート {<br> data() {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>return { pageParam: '' }</pre><div class="contentsignin">ログイン後にコピー</div></div><p>},<br> onLoad(options) {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>this.pageParam = options.pageParam</pre><div class="contentsignin">ログイン後にコピー</div></div><p>}<br>}<br></script>
ページ A では、ボタン クリック イベントを通じてページ B にジャンプし、パラメータ pageParam
を渡します。ページ B では、渡されたパラメーターが onLoad
ライフサイクル関数を通じて取得され、pageParam
に割り当てられ、ページに表示されます。
複数のページ間でデータを共有する必要がある場合は、Vuex を使用することをお勧めします。 Vuex は、Vue.js アプリケーション専用に開発された状態管理パターンであり、uniapp でも使用できます。サンプルコードは次のとおりです:
//store/index.js
import Vuex from 'vuex'
import Vue from 'vue'
Vue.use(Vuex)
デフォルトの新しい Vuex.Store をエクスポート({
状態: {
data: 'Hello Uniapp'
},
変異: {
updateData(state, payload) { state.data = payload }
},
アクション: {} ,
ゲッター: {}
})
// ページ A
<text>{{data}}</text> <button @click="navigateToPageB">跳转至页面B</button>
<script><br>import { mapState } from 'vuex'</p><p>export デフォルト {<br> 計算結果: {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>...mapState(['data'])</pre><div class="contentsignin">ログイン後にコピー</div></div><div class="contentsignin">ログイン後にコピー</div></div><p>} ,<br> メソッド: {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>navigateToPageB() { this.$store.commit('updateData', 'Hello Page B') uni.navigateTo({ url: '/pages/pageB' }) }</pre><div class="contentsignin">ログイン後にコピー</div></div><p>}<br>}<br></script>
// ページ B
<text>{{data}}</text>