uniapp で変数をグローバルに定義する方法

coldplay.xixi
リリース: 2023-01-13 00:44:08
オリジナル
10218 人が閲覧しました

Uniapp のグローバル変数定義方法: 1. パブリック モジュールを使用し、コードは [return obj instanceof Array] です; 2. 頻繁に使用される定数またはメソッドを [Vue.prototype] に直接拡張します。

uniapp で変数をグローバルに定義する方法

このチュートリアルの動作環境: 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 &#39;../../common/helper.js&#39;;  
    export default {  
        data() {  
            return {};  
        },  
        onLoad(){  
            console.log(&#39;now:&#39; + helper.now());  
        },  
        methods: {  
        }  
    }  
</script>
ログイン後にコピー

このメソッドは保守には便利ですが、毎回導入する必要があるという欠点があります。

2. Vue.prototype をマウントする

頻繁に使用される定数やメソッドを Vue.prototype に直接拡張すると、各 Vue オブジェクトが継承されます。

このメソッドは vue ページのみをサポートすることに注意してください。

例は次のとおりです。

main.js にプロパティ/メソッドをマウントします

Vue.prototype.websiteUrl = &#39;http://uniapp.dcloud.io&#39;;  
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(&#39;now:&#39; + 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: &#39;text&#39;  
        },  
        onLaunch: function() {  
            console.log(&#39;App Launch&#39;)  
        },  
        onShow: function() {  
            console.log(&#39;App Show&#39;)  
        },  
        onHide: function() {  
            console.log(&#39;App Hide&#39;)  
        }  
    }  
</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: &#39;&#39;,  
        avatarUrl: &#39;&#39;,  
        userName: &#39;&#39;  
    },  
    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 = &#39;&#39;;  
            state.userName = &#39;&#39;;  
            state.avatarUrl = &#39;&#39;;  
        }  
    }  
})
ログイン後にコピー

次に、メイン ディレクトリに新しいストア ディレクトリを作成する必要があります。.js マウント Vuex

import store from &#39;./store&#39;  
Vue.prototype.$store = store
ログイン後にコピー

最後に、pages/index/index.vue で

<script>  
    import {  
        mapState,  
        mapMutations  
    } from &#39;vuex&#39;;  
    export default {  
        computed: {  
            ...mapState([&#39;avatarUrl&#39;, &#39;login&#39;, &#39;userName&#39;])  
        },  
        methods: {  
            ...mapMutations([&#39;logout&#39;])  
        }  
    }  
</script>
ログイン後にコピー

を使用します。 関連する無料学習の推奨事項: プログラミングビデオ

以上がuniapp で変数をグローバルに定義する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート