モバイル インターネットの急速な発展に伴い、プロジェクトの範囲とユーザー エクスペリエンスを向上させるために複数のプラットフォームを同時に開発したいと考える開発者が増えています。このとき登場したのが、DCloud が立ち上げた Vue.js ベースのクロスプラットフォーム開発ツールで、一度作成すれば複数のプラットフォームに同時に公開できる Uniapp (正式名称: Universal Application) です。
Uniappではデータは非常に重要なコンテンツであり、データの読み込みが必要です。たとえば、ユーザー情報や製品情報などのページのコンテンツを表示するには、いくつかの基本データをページに読み込む必要があります。では、Uniapp でこれらの基本情報の読み込みを処理するにはどうすればよいでしょうか?
1. ページ読み込み前に基本データを処理する
Uniapp では、ページ読み込み前に基本データを処理できます。具体的な方法は、ページのライフサイクル関数の uni.showLoading() 関数を使用して、読み込みアニメーションを表示すると同時にデータリクエストを開始し、リクエストが成功すると、データがデータに割り当てられます。ページの属性。サンプル コードは次のとおりです。
<text>{{userInfo.nickname}}</text>
上記のコードは、ページが読み込まれる前に基本データを処理する例です。
2. Vuex を使用してグローバル データを管理する
プロジェクトでグローバル データを使用する必要がある場合は、管理に Vuex を使用する必要があります。 Vuex は Vue.js の公式状態管理ライブラリであり、グローバル データを含むアプリケーション内のすべての状態を効果的に管理できます。
Uniapp では、store.js ファイルに Vuex ストア オブジェクトを作成し、commit() メソッドを通じてミューテーション内のメソッドを送信して、状態の状態を変更できます。サンプルコードは次のとおりです。
//store.js file
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const store = new Vuex.Store({
状態: {
userInfo: {} //定义全局数据
},
変異: {
setUserInfo(state, userInfo) { //设置全局数据的方法 state.userInfo = userInfo; }
}
})
デフォルト ストアをエクスポート;
//ページ モジュール ファイル
<text>{{userInfo.nickname}}</text>
< /template>
<script><br> import { mapState } from 'vuex';</p><p>export デフォルト {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>computed: mapState(['userInfo']), //映射state中的全局数据到页面data属性中 onShow() { uni.showLoading({ title: '正在加载...' }); //发起数据请求 uni.request({ url: 'http://xxx.com/getUserInfo', success: (res) => { this.$store.commit('setUserInfo', res.data); //通过Vuex改变全局数据 uni.hideLoading(); } }); }</pre><div class="contentsignin">ログイン後にコピー</div></div><p>}<br></script>
上記のコードは、Vuex を介してグローバル データを管理する例です。
3. minix を使用してデータを混合および処理する
Uniapp では、データ処理に minix を使用することもできます。ミックスインは、コンポーネント間でコードを共有するための一般的なソリューションです。一般的に使用されるデータ要求処理メソッドの一部を抽出してページに組み込んで使用すると、コードの再利用性が向上します。
具体的な方法としては、minix ファイル内でデータリクエストの処理メソッドを定義し、mixins 属性を使用してページ内に導入します。サンプル コードは次のとおりです。
//userInfoMixin.js ファイル
export デフォルト {
data() {
return { userInfo: {} }
},
メソッド: {
getUserInfo() { //定义数据请求方法 uni.request({ url: 'http://xxx.com/getUserInfo', success: (res) => { this.userInfo = res.data; } }); }
}
}
//ページ モジュール ファイル
<text>{{userInfo.nickname}}</text>
< ;/template> ;