Uniapp のグローバル変数定義方法: 1. パブリック モジュールを使用し、コードは [return obj instanceof Array] です; 2. 頻繁に使用される定数またはメソッドを [Vue.prototype] に直接拡張します。
このチュートリアルの動作環境: Windows7 システム、uni-app2.5.1 バージョン、Dell G3 コンピューターこの方法は、すべてのブランドのコンピューターに適しています。
推奨事項 (無料): uni-app 開発チュートリアル
uniapp でグローバル変数を定義する方法:
# 1. パブリック モジュール
これらのグローバル変数を整理および管理するための専用モジュールを定義し、必要なページに導入します。
このメソッドは、複数の vue ページまたは複数の nvue ページ間での共有のみをサポートし、vue と nvue の間では共有をサポートしないことに注意してください。
例は次のとおりです。
uni-app プロジェクトのルート ディレクトリに共通ディレクトリを作成し、その共通ディレクトリに新しい helper.js を作成して共通メソッドを定義します。
const websiteUrl = 'http://uniapp.dcloud.io'; const now = Date.now || function () { return new Date().getTime(); }; const isArray = Array.isArray || function (obj) { return obj instanceof Array; }; export default { websiteUrl, now, isArray }
次に、pages/index/index.vue のモジュールを参照します
<script> import helper from '../../common/helper.js'; export default { data() { return {}; }, onLoad(){ console.log('now:' + helper.now()); }, methods: { } } </script>
このメソッドは保守には便利ですが、毎回導入する必要があるという欠点があります。
2. Vue.prototype をマウントする
頻繁に使用される定数やメソッドを Vue.prototype に直接拡張すると、各 Vue オブジェクトが継承されます。
このメソッドは vue ページのみをサポートすることに注意してください。
例は次のとおりです。
main.js にプロパティ/メソッドをマウントします
Vue.prototype.websiteUrl = 'http://uniapp.dcloud.io'; Vue.prototype.now = Date.now || function () { return new Date().getTime(); }; Vue.prototype.isArray = Array.isArray || function (obj) { return obj instanceof Array; };
次に、ページ内に追加します。 /index/index.vue で
<script> export default { data() { return {}; }, onLoad(){ console.log('now:' + this.now()); }, methods: { } } </script>
を呼び出すこのメソッドは、main.js で定義するだけで済み、各ページで直接呼び出すことができます。
ヒント
各ページに重複する属性名やメソッド名を含めないでください。
Vue.prototype にマウントされるプロパティまたはメソッドには、統一されたプレフィックスを追加できるようにすることをお勧めします。たとえば、$url と global_url は、コードを読み取るときに現在のページのコンテンツから簡単に区別できます。
3. globalData
アプレットには globalData の概念があり、アプリ上でグローバル変数を宣言できます。以前の Vue にはこのような概念はありませんでしたが、uni-app は globalData の概念を導入し、H5 や App などのプラットフォームに実装しました。
App.vue で globalData を定義することも、API を使用してこの値の読み取りおよび書き込みを行うこともできます。
globalData は、vue および nvue 共有データをサポートします。
globalData は、グローバル変数を使用する比較的簡単な方法です。
定義: App.vue
<script> export default { globalData: { text: 'text' }, onLaunch: function() { console.log('App Launch') }, onShow: function() { console.log('App Show') }, onHide: function() { console.log('App Hide') } } </script> <style> /*每个页面公共css */ </style>
js で globalData を操作する方法は次のとおりです。
割り当て: getApp().globalData.text = 'test'
値: console.log(getApp(). globalData.text) // 'test'
#globalData データをページにバインドする必要がある場合は、ページの onshow 宣言サイクルで変数を再割り当てできます。 。 HBuilderX 2.0.3 以降、nvue ページはユニアプリ コンパイル モードでの onshow もサポートします。
4. Vuex
Vuex は、Vue.js アプリケーション専用に開発された状態管理パターンです。集中ストレージを使用してアプリケーションのすべてのコンポーネントの状態を管理し、対応するルールを使用して状態が予測可能な方法で変化することを保証します。
ここでは、ログイン後のユーザー情報を同期的に更新する例で、Vuex の使い方を簡単に説明しますが、より詳しい Vuex の内容については、公式 Web サイト Vuex にアクセスして学習することをお勧めします。
例:
uni-app プロジェクトのルート ディレクトリに新しいストア ディレクトリを作成し、ストア ディレクトリにindex.jsを作成してステータス値を定義します
const store = new Vuex.Store({ state: { login: false, token: '', avatarUrl: '', userName: '' }, mutations: { login(state, provider) { console.log(state) console.log(provider) state.login = true; state.token = provider.token; state.userName = provider.userName; state.avatarUrl = provider.avatarUrl; }, logout(state) { state.login = false; state.token = ''; state.userName = ''; state.avatarUrl = ''; } } })
次に、メイン ディレクトリに新しいストア ディレクトリを作成する必要があります。.js マウント Vuex
import store from './store' Vue.prototype.$store = store
最後に、pages/index/index.vue で
<script> import { mapState, mapMutations } from 'vuex'; export default { computed: { ...mapState(['avatarUrl', 'login', 'userName']) }, methods: { ...mapMutations(['logout']) } } </script>
を使用します。 関連する無料学習の推奨事項: プログラミングビデオ
以上がuniapp で変数をグローバルに定義する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。