vue如何在store倉庫中使用路由
在store倉庫中使用路由
在倉庫中,this的指向指的是store,但是在一般的工程,我們有可能會需要在倉庫中走路由等邏輯,這個時候就需要先找到全局vue,因為路由是vue的一個子模塊
main.js
window.Vue = vue const vue = new Vue({ ? el: '#app', ? store, ? router, ? render: h => h(App) }) window.Vue = vue export default vue
store/index.js
const _router = window.Vue.$router
actions: { ? ? getResourcesAsync ({commit}, path) { ? ? ? const _router = window.Vue.$router ? ? ? Vue.prototype.axios.post('/services/vp/motorcateUser/companyRoleResources/myResources', {}) ? ? ? ? .then((res) => { ? ? ? ? ? if (res.code === 200) { ? ? ? ? ? ? let resource = res.result ? ? ? ? ? ? var urList = steamroller(resource) ? ? ? ? ? ? var externalBtns = [] ? ? ? ? ? ? var ownBtns = [] ? ? ? ? ? ? sessionStorage.setItem('externalBtns', JSON.stringify(externalBtns)) ? ? ? ? ? ? sessionStorage.setItem('ownBtns', JSON.stringify(ownBtns)) ? ? ? ? ? ? commit('SET_RESOURCE', JSON.stringify(resource || {})) ? ? ? ? ? ? if (path) { ? ? ? ? ? ? ? if (urList.filter(item => item.granted && item.menuCode === path).length) { ? ? ? ? ? ? ? ? const currentRoute = urList.filter(item => item.granted && item.menuCode === window.Vue.$route.name) ? ? ? ? ? ? ? ? if (currentRoute.length) { ? ? ? ? ? ? ? ? ? _router.go(0) ? ? ? ? ? ? ? ? } else { ? ? ? ? ? ? ? ? ? _router.replace({name: 'concat'}) ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? } else { ? ? ? ? ? ? ? ? _router.replace({name: 'concat'}) ? ? ? ? ? ? ? } ? ? ? ? ? ? } ? ? ? ? ? } else { ? ? ? ? ? ? Vue.prototype.$message({ ? ? ? ? ? ? ? message: res.message, ? ? ? ? ? ? ? type: 'info' ? ? ? ? ? ? }) ? ? ? ? ? ? sessionStorage.removeItem('czb-sign-token') ? ? ? ? ? ? sessionStorage.removeItem('czb-sign-info') ? ? ? ? ? } ? ? ? ? }).catch(() => { ? ? ? ? ? sessionStorage.removeItem('czb-sign-token') ? ? ? ? ? sessionStorage.removeItem('czb-sign-info') ? ? ? ? }) ? ? } ? }
在js文件中使用vue的router和store
在js文件中引入vue的路由配置文件 或者 store文件
import store from '../store'; import router from '../router'; //直接使用即可 router.push({'path': '/'}) store.state.XXX;?
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
uniapp 小程序和app map地圖上顯示多個酷炫動態(tài)的標(biāo)點效果(頭像后端傳過來)
這篇文章主要介紹了uniapp 小程序和app map地圖上顯示多個酷炫動態(tài)的標(biāo)點效果(頭像后端傳過來),本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-09-09Vue中this.$router和this.$route的區(qū)別及push()方法
這篇文章主要給大家介紹了關(guān)于Vue中this.$router和this.$route的區(qū)別及push()方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05Vue3中當(dāng)v-if和v-for同時使用時產(chǎn)生的問題和解決辦法
封裝一個組件時,我使用到了v-for和v-if,它們在同一標(biāo)簽內(nèi),總是提示v-for循環(huán)出來的item在實例中沒有被定義,查詢資料后原因是因為v-for和v-if在同級使用時,v-if優(yōu)先級比v-for高,所以本文給大家介紹了Vue3中當(dāng)v-if和v-for同時使用時產(chǎn)生的問題和解決辦法2024-07-07Vue源碼學(xué)習(xí)之響應(yīng)式是如何實現(xiàn)的
最近接觸了vue.js,一度非常好奇vue.js是如何監(jiān)測數(shù)據(jù)更新并且重新渲染頁面,這篇文章主要給大家介紹了關(guān)于Vue源碼學(xué)習(xí)之響應(yīng)式是如何實現(xiàn)的相關(guān)資料,需要的朋友可以參考下2021-10-10vue項目使用lodash節(jié)流防抖函數(shù)問題解決方案
在lodash函數(shù)工具庫中,防抖 _.debounce 和節(jié)流 _.throttle 函數(shù)在一些頻繁觸發(fā)的事件中比較常用,這篇文章主要介紹了vue項目使用lodash節(jié)流防抖函數(shù)問題與解決,需要的朋友可以參考下2023-10-10