Vue.js VUEX API层处于突变还是getter?
假设我收到API的回复:Vue.js VUEX API层处于突变还是getter?,vue.js,vuex,Vue.js,Vuex,假设我收到API的回复: { name: 'Mat', last_name: 'Kowalsky', } Person的界面如下所示: { name: string; lastName: string; children: Person[] } 将一个模型转换为另一个模型的最佳位置在哪里?我应该这样做吗 const setPerson: (state: State, person: any) => { state.person = {
{
name: 'Mat',
last_name: 'Kowalsky',
}
Person的界面如下所示:
{
name: string;
lastName: string;
children: Person[]
}
将一个模型转换为另一个模型的最佳位置在哪里?我应该这样做吗
const setPerson: (state: State, person: any) => {
state.person = {
name: person.name,
lastName: person.last_name,
children: (person.children) ? person.children : []
}
}
const getters = {
person: (state: State) => {
return {
name: state.person.name,
lastName: state.person.last_name,
children: (state.person.children) ? state.person.children : []
}
}
}
或者在getter这样的例子中:
const setPerson: (state: State, person: any) => {
state.person = {
name: person.name,
lastName: person.last_name,
children: (person.children) ? person.children : []
}
}
const getters = {
person: (state: State) => {
return {
name: state.person.name,
lastName: state.person.last_name,
children: (state.person.children) ? state.person.children : []
}
}
}
关于当插入新的人时,突变被调用一次。 吸气剂很可能经常被叫来
这就是为什么我会将转换放在变异中。如果我必须选择,那就是变异,但我认为最好的方法,因为您的存储依赖于您的api 您可以将API的响应映射到您的Person,就像您的变体已经有Person对象一样 承诺:
myPromise.then(res => ({ res.name, lastName: res.last_name }))
使用Rxjs:
myObservable.pipe(
map(res => ({ res.name, lastName: res.last_name }))
)
当你使用反应时,你应该使用变异。因为它不依赖于任何商店属性 getter是依赖于另一个存储属性的,当存储属性更改时,getter会自动更改。因此,如果您的属性与商店的其他属性有依赖关系,那么最好使用getters