在我看来:
方法 1. 使用基于 Vue 原型的 quasar 插件(你肯定知道):
插件/foo.js
const fooModule = {
a: 1,
doTest() { console.log('doTest') }
};
export default ({Vue}) => {
Vue.prototype.$foo = fooModule;
}
quasar.conf.js
plugins: [
'i18n',
'axios',
'foo',
],
组件bar.vue
:
methods: {
test () { this.$foo.doTest() }
}
方法2. 只使用js模块
因为 js 模块是单例的。无论你在哪里导入一个 js 模块,它都指向同一个指针。
所以只要有GlobalTest.js
:
export default {
a: 1,
inc() { this.a = this.a + 1 }
}
和 test1.js:
import GlobalTest from '/path/to/GlobalTest'
console.log(GlobalTest.a); // output 1
console.log(GlobalTest.inc()); // inc
和 test2.js:
import GlobalTest from '/path/to/GlobalTest'
console.log(GlobalTest.a); // Assuming this was called after test1.js: output 2
我使用了 quasar cli,但我只是将 quasar 视为 UI 库。
- - 更新 - -
这是一个相当简单的概念:用户在应用程序中从一个页面移动到另一个页面,但如果他收到一条消息,他可以看到一条 toast 消息/回复或未读消息计数器的增量。
取决于要求,如果您需要“反应式”,您应该使用 Vuex(最好的内置反应式库)+ 将应用程序状态拆分为模块,但我只在需要“反应式”时使用 Vuex,而在我需要时避免使用它读取和写入值。