vue2的全局變量


如果不用vuex處理全局狀態的話,看到網上有介紹額外創建一個空的vue實例(記得是官網這么說的,懶得查證了),或者以js的方式實現。
比如僅僅是存儲幾個狀態,vuex有些浪費。

創建一個文件,比如bus,內容如下

<script>
let userid = '-1'
let password = ''
let logined = false
export default {
userid,
password,
logined
}
</script>

總結:默認變量的值需要如上提前設置,在export里面設置,沒有效果。另外,如果不需要默認值,不需要在文件中聲明。
如果入口文件為main.js,在該文件中如下(這里我是用vux做的項目)
import Vue from 'vue'
import FastClick from 'fastclick'
import VueRouter from 'vue-router'
import {AjaxPlugin, LoadingPlugin} from 'vux'
import App from './App'
import bus from './bus'
Vue.use(VueRouter)
Vue.use(AjaxPlugin)
Vue.use(LoadingPlugin)
Vue.prototype.bus = bus
const routes = [
{path: '/', redirect: '/home'},
......
]
const router = new VueRouter({
routes
})
FastClick.attach(document.body)
Vue.config.productionTip = false
/* eslint-disable no-new */
new Vue({
router,
render: h => h(App)
}).$mount('#app-box')

在vue文件中可以直接使用bus存放變量。再說一遍,如果不需要默認值,不需要在bus文件中聲明。
在其他vue文件里可以直接使用bus中的變量
<template>
  ......
</template>
<script>
import { XHeader, Sticky, Group, Datetime, PopupPicker, XInput } from 'vux'
export default {
......
created () {
if (this.bus.logined === false) {
this.$router.push('login')
return
}
this.getAccountData()
this.getBaseData()
}
}
</script>
<style scoped>
</style>



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM