一、參考文章
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的什麼缺點?