Vue.js 在两个vuex模块中使用相同的操作来分离日志逻辑
所以我正在开发nuxt应用程序,使用vuex作为一个商店。 我想到了使用一些日志记录(对laravel后端的简单RESTAPI请求)来记录用户的操作 我发现,如果我在两个不同的模块中有两个名称相同的动作,那么这两个动作都将被执行 这种做法可以接受吗?还是将被纠正和删除的未记录行为 快速计划正在发生的事情:Vue.js 在两个vuex模块中使用相同的操作来分离日志逻辑,vue.js,vuex,nuxt.js,Vue.js,Vuex,Nuxt.js,所以我正在开发nuxt应用程序,使用vuex作为一个商店。 我想到了使用一些日志记录(对laravel后端的简单RESTAPI请求)来记录用户的操作 我发现,如果我在两个不同的模块中有两个名称相同的动作,那么这两个动作都将被执行 这种做法可以接受吗?还是将被纠正和删除的未记录行为 快速计划正在发生的事情: store/index.js export const LOGGING_SEARCH = 'logging search'; export const SEARCH = 'search';
store/index.js
export const LOGGING_SEARCH = 'logging search';
export const SEARCH = 'search';
从“./logging”导入日志记录;
从“./search”导入搜索;
常量存储=()=>
新Vuex.商店({
模块:{
登录中,
搜索,
}
});
导出默认存储;
store/search.js
export const LOGGING_SEARCH = 'logging search';
export const SEARCH = 'search';
const actions={
搜索(状态、查询){
//一些搜索请求和处理结果
}
};
常量搜索={
国家,,
突变,
行动,
};
导出默认搜索;
store/logging.js
export const LOGGING_SEARCH = 'logging search';
export const SEARCH = 'search';
const actions={
搜索(状态、查询){
日志(…)
}
};
常数记录={
国家:{},
突变:{},
行动,
};
导出默认日志;
我认为有两种方法:
constants/store.js
export const LOGGING_SEARCH = 'logging search';
export const SEARCH = 'search';
然后使用它,例如:
import { LOGGING_SEARCH } from '../constants/store.js'
const actions = {
[LOGGING_SEARCH](state, query) {
log(...)
}
};
const logging = {
state: {},
mutations: {},
actions,
};
export default logging;
叫它
import { LOGGING_SEARCH } from '../constants/store.js'
store.dispatch(LOGGING_SEARCH, 'query');
store.dispatch('logging/search', 'query');
namespased模块
store/logging.js
const actions = {
search(state, query) {
log(...)
}
};
const logging = {
namespased: true,
state: {},
mutations: {},
actions,
};
export default logging;
叫它
import { LOGGING_SEARCH } from '../constants/store.js'
store.dispatch(LOGGING_SEARCH, 'query');
store.dispatch('logging/search', 'query');
Namespased模块非常有用,特别是在方面,我看到了两种方法:
constants/store.js
export const LOGGING_SEARCH = 'logging search';
export const SEARCH = 'search';
然后使用它,例如:
import { LOGGING_SEARCH } from '../constants/store.js'
const actions = {
[LOGGING_SEARCH](state, query) {
log(...)
}
};
const logging = {
state: {},
mutations: {},
actions,
};
export default logging;
叫它
import { LOGGING_SEARCH } from '../constants/store.js'
store.dispatch(LOGGING_SEARCH, 'query');
store.dispatch('logging/search', 'query');
namespased模块
store/logging.js
const actions = {
search(state, query) {
log(...)
}
};
const logging = {
namespased: true,
state: {},
mutations: {},
actions,
};
export default logging;
叫它
import { LOGGING_SEARCH } from '../constants/store.js'
store.dispatch(LOGGING_SEARCH, 'query');
store.dispatch('logging/search', 'query');
Namespased模块非常有用,尤其是在中,您可以使用它来隔离具有相同成员的模块。嘿@MatJ!感谢您的承诺:)这里的问题是我不想有单独的操作,对于我来说,在两个不同的模块中处理一个
search
操作是很好的目标->我可以将实际请求与日志记录分离,等等。我只是想知道这是否是正常的做法:)哦!,这很好,这是您可以用来隔离具有相同成员的模块的预期行为。嘿@MatJ!感谢您的承诺:)这里的问题是我不想有单独的操作,对于我来说,在两个不同的模块中处理一个search
操作是很好的目标->我可以将实际请求与日志记录分离,等等。我只是想知道这是否是正常的做法:)哦!,那很好,这是故意的行为嘿!感谢您的承诺:)这里的问题是我不想有单独的操作,对于我来说,在两个不同的模块中处理一个search
操作是很好的目标->我可以将实际请求与日志记录分离,等等。我只是想知道这是否是正常的做法:)嘿!是的,它是好的,在某些情况下,它会有帮助。来自documentatin:“默认情况下,模块内的操作、突变和getter仍然在全局命名空间下注册-这允许多个模块对相同的突变/动作类型作出反应。”酷,这是我在研究文档时遗漏的,谢谢!嘿感谢您的承诺:)这里的问题是我不想有单独的操作,对于我来说,在两个不同的模块中处理一个search
操作是很好的目标->我可以将实际请求与日志记录分离,等等。我只是想知道这是否是正常的做法:)嘿!是的,它是好的,在某些情况下,它会有帮助。来自documentatin:“默认情况下,模块内的操作、突变和getter仍然在全局命名空间下注册-这允许多个模块对相同的突变/动作类型作出反应。”酷,这是我在研究文档时遗漏的,谢谢!