- store下新增个index.js用来做自动导入(pinia使用可参考之前这篇文章
javascript
//使用pinia来管理全局状态
import { createPinia } from 'pinia'
// 自动导入所有 store 文件
const modulesFiles = import.meta.glob('./modules/*.js', { eager: true })
const stores = {}
for (const path in modulesFiles) {
const moduleName = path.replace(/^\.\/modules\/(.*)\.\w+$/, '$1')
stores[moduleName] = modulesFiles[path].default
}
// 安装所有 store
export const setupStore = (app) => {
const pinia = createPinia()
app.use(pinia)
// 注册所有 store
Object.keys(stores).forEach(key => {
if (stores[key] && typeof stores[key] === 'function') {
stores[key]()
}
})
return pinia
}
// 导出所有 store
export default stores
- mian.js引入setupStore文件
javascript
import { setupStore } from './store'
const app = createApp(App)
setupStore(app)