从 Quasar 引导文件访问存储
Accessing store from Quasar boot file
我正在使用 Quasar 并且我有一个启动文件(与 main.js 基本相同):
Vue.use(VueCurrencyFilter, {
symbol: '$',
thousandsSeparator: '.',
fractionCount: 2,
fractionSeparator: ',',
symbolPosition: 'front',
symbolSpacing: true
})
我可以在我的组件中做:
{{purchaseOrderTotal | currency(currentLocation.currency)}}
currentLocation
是我商店中用 mapState 调用的状态。
currentLocation.currency
是 symbol
选项的货币。
这可行,但意味着我必须在每个组件中传递参数。
有没有办法在js文件中调用currentLocation.currency
作为默认值?
您可以将 Vuex 存储导入任何模块:
import store from '@/store';
并在该文件中使用它,就像在组件中使用它一样:
let currency = store.state.currentLocation.currency;
这与可通过组件访问的 this.$store
对象相同。
我忘记了 Quasar 中启动文件的剖析:
import VueCurrencyFilter from 'vue-currency-filter'
export default ({ Vue, store }) => {
Vue.use(VueCurrencyFilter,
.......
};
商店需要导出而不是导入。
在 Quasar 2 中,另一种方法是创建一个新的引导文件:quasar new boot file
在创建的文件../boot/file.(js|ts)中我们定义变量:mystore(或者 myrouter 如果我们想使用 store 和 router 在你的函数中)
我们从“导出默认值”初始化它们:
import { boot } from 'quasar/wrappers'
let myrouter = null;
let mystore = null;
/**
* @param {Array} value
*/
const redirectFromLogin = (value) => {
if (value.length > 1) {
//set routing
myrouter.push("/multiple");
} else {
//set routing
myrouter.push("/single");
}
}
/**
* @param {Array} userdata
*/
const saveUser = (userdata) => {
// Save user info in Store
mystore.commit("userstore/setUser", userdata);
}
// "async" is optional;
// more info on params: https://v2.quasar.dev/quasar-cli/boot-files
export default boot(async ({ app, router, store }) => {
myrouter = router;
mystore = store
})
export { saveUser, redirectFromLogin }
我正在使用 Quasar 并且我有一个启动文件(与 main.js 基本相同):
Vue.use(VueCurrencyFilter, {
symbol: '$',
thousandsSeparator: '.',
fractionCount: 2,
fractionSeparator: ',',
symbolPosition: 'front',
symbolSpacing: true
})
我可以在我的组件中做:
{{purchaseOrderTotal | currency(currentLocation.currency)}}
currentLocation
是我商店中用 mapState 调用的状态。
currentLocation.currency
是 symbol
选项的货币。
这可行,但意味着我必须在每个组件中传递参数。
有没有办法在js文件中调用currentLocation.currency
作为默认值?
您可以将 Vuex 存储导入任何模块:
import store from '@/store';
并在该文件中使用它,就像在组件中使用它一样:
let currency = store.state.currentLocation.currency;
这与可通过组件访问的 this.$store
对象相同。
我忘记了 Quasar 中启动文件的剖析:
import VueCurrencyFilter from 'vue-currency-filter'
export default ({ Vue, store }) => {
Vue.use(VueCurrencyFilter,
.......
};
商店需要导出而不是导入。
在 Quasar 2 中,另一种方法是创建一个新的引导文件:quasar new boot file
在创建的文件../boot/file.(js|ts)中我们定义变量:mystore(或者 myrouter 如果我们想使用 store 和 router 在你的函数中)
我们从“导出默认值”初始化它们:
import { boot } from 'quasar/wrappers'
let myrouter = null;
let mystore = null;
/**
* @param {Array} value
*/
const redirectFromLogin = (value) => {
if (value.length > 1) {
//set routing
myrouter.push("/multiple");
} else {
//set routing
myrouter.push("/single");
}
}
/**
* @param {Array} userdata
*/
const saveUser = (userdata) => {
// Save user info in Store
mystore.commit("userstore/setUser", userdata);
}
// "async" is optional;
// more info on params: https://v2.quasar.dev/quasar-cli/boot-files
export default boot(async ({ app, router, store }) => {
myrouter = router;
mystore = store
})
export { saveUser, redirectFromLogin }