簡介
自定義全局函數很重要。
使用
這里教授使用自定義全局函數,進行路由守衛。
1.在common中創建utils.js, 選擇要掛載的對象。使用vue(此vm)
const install = (Vue,vm) => { // 掛載到$u 上 vm.$u.utils = { isLogin:() =>{ if( !vm.vuex_token ){ vm.$u.toast("請登錄"); setTimeout(()=>{ uni.redirectTo({ url:"/pages/auth/login" }) },2000) return false; } return true; } } } export default { install }
2.main.js注冊
// 引入自定義工具 import utils from '@/common/utils.js' Vue.use(utils, app)
3. 調用
vue.$u.掛載名(就是import名稱).函數名
例如:vue.$u.utils.isLogin()
這里有個小點,因為setTimeout(function(){} , int )是異步執行,所以要有返回值判斷被路由守衛的是否繼續執行
onLoad() { console.log("vuex_token: "+this.vuex_token); // 因為 setTimeout是異步執行,如果讓下面代碼執行。可能因為沒有數據報錯。所以獲取false后直接return,不執行下面代碼 if( !this.$u.utils.isLogin() ) { return } console.log(1111); console.log("Ssssssssss"); },