項目中如果配置比較多的話,store的使用可能不只是在store文件夾里面的文件。
比如下面項目結(jié)構(gòu):

例如希望在api/index.js 文件使用store,改怎么導(dǎo)入呢?
原因
其實在main.js我們是導(dǎo)入過store的,并掛在到vue實例上,如下:
import store from './store'
new Vue({
el: '#app',
router,
store,
components: { App },
template: '<App/>'
})
所以在vue實例(.vue文件)中我們可以通過 $store 或 this.$store 來找到,但是外部的 .js 不在vue實例 this 下,所以直接用 console.log($store) 是 undefined。
解決方法
像在main.js 文件中一樣直接導(dǎo)入 store(router 的使用也是同樣的方法), 如下:
api/index.js:
// 導(dǎo)入
import axios from 'axios'
import store from '../store'
import router from '../router'
// request 請求攔截
axios.interceptors.request.use(
config => {
if (router.currentRoute.meta.requireAuth) {
config.headers['Authorization'] = 'Bearer ' + store.state.token
}
return config
})