自創-在uniapp使用全局變量

一、參考文章

uni-app 全局變量的幾種實現方式 優點:對uniapp理解的很深刻
uni-app多種設置全局變量及全局變量重新賦值優點:寫的很踏實、易用
vue 和 nvue 共享的變量和數據

1、輔助參考:

uniapp裏nvue和vue的關係是什麼啊?爲什麼有vue文件了還要再重新爲app單獨寫一份nvue呢
nvue開發與vue開發的常見區別

二、我的做法

第一篇理解uniapp,第二篇實操,加上配置文件融合到vuex裏面,既保持結構清晰,又保證vue、nvue數據通用。

1、這樣做的原因

  • 公用模塊:太麻煩,太亂
  • 掛載 Vue.prototype: 調用時樣子挺好看,但是功能欠缺(僅支持vue)
  • globalData: 調用的樣子太醜
  • Vuex: 雖然邏輯上很麻煩,但是調用時樣子好看,邏輯清晰,功能健全,有利於擴展。但是配置文件直接寫在裏面感覺很容易混成一團。所以按照PHP的邏輯把這一部分脫離開了。

2、我的代碼

common中創建config.js配置文件

export default {
	title:'自己創造的寫全局配置的方法',
	config_webside:'https://www.baidu.com/',
	obj:{
		title: '子對象',
	}
}

store下index.js

//模仿
import Vue from 'vue'
import Vuex from 'vuex'
import config from '../common/config.js'

Vue.use(Vuex)

const store = new Vuex.Store({  
    state: {  
        login: false,  
        token: '',  
        avatarUrl: '',  
        userName: '',
		globalWebside: 'http://139.224.194.158/'	,//http://www.loushizufang.com/以防這個網站備案失效
		config: config
    },  
    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 = '';  
        }  
    }  
})

export default store

main.js

import Vue from 'vue'
import App from './App'
import store from './store'  

Vue.prototype.$store = store

Vue.config.productionTip = false

App.mpType = 'app'

const app = new Vue({
    ...App
})
app.$mount()


三、涉及知識與問題

weex怎麼是原生編譯呢?
nvue和weex的關係,爲什麼是vue的更快速版本,又補充了weex的什麼缺點?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章