整个系列写得太严肃了,这次在标题上小小的中二一下。
vuex 的 getters 用来展现欲望,展现想要使用资料的样子。这个道理是基於 ADT 的设计。Web API 的 GET api 也是一样的道理,所以 GET 通常会带很多 query。也正因为如此,所以 facebook 後来推出了 GraphQL 我想也是为了满足人类各式各样的欲望,让 GET 资料的方式更加弹性。
@/store/user/index.js
做在 mutation 存在 state
import actions from './actions';
export default {
//...
state: {
leader_users: [],
active_users: [],
},
mutation: {
leaderUsers (state, users) {
const leader_id_list = [...users.reduce((leaders, user) => {
leaders.add(user.department.leader_id)
return leaders;
}, new Set())];
state.leader_users = users.filter(user => leader_id_list.includes(user.id))
},
activeUsers (state, users) {
state.active_users = users.filter(user => user.is_active)
}
},
getters: {
leaderUsers(state) {
return state.leader_users;
},
activeUsers(state) {
return state.active_users;
}
}
}
缺点
@/store/user/index.js
做在 getters
import actions from './actions';
export default new Vuex.Store({
//...
getters: {
leaderUsers (state) {
const leader_id_list = [...state.list.reduce((leaders, user) => {
leaders.add(user.department.leader_id)
return leaders;
}, new Set())];
return state.list.filter(user => leader_id_list.includes(user.id))
},
activeUsers (state) {
return state.list
.filter(user => user.is_active)
}
}
})
个人偏爱这一种安排方式
优点
缺点
不过这就是本质性问题!只能移动、隐藏,无法消灭
部门主管,属於 department 的 module
@/store/department/index.js
做在 getters
import actions from './actions';
export default new Vuex.Store({
//...
getters: {
leaders (state, getters) {
const leader_id_list = state.list.map(department => department.leader_id);
return getters.users.filter(user => leader_id_list.includes(user.id))
},
// ...
}
})
<<: Day 19:怎麽在 Angular 专案中使用 nvm 切换 Node.js 版本
>>: JavaScript Day 22. Hoisting
此处要设定一个简单的APP让我可以随时确认服务器是不是有稳定运行 pip install djang...
组件的部份因为有比较复杂,所以会做个小练习来熟悉一点 - 分页的组件 分页组件(props &...
一、结构 func name(InputParameter-list) (OutPutResult-...
因为实在有太多东西想分享了,但已经 29 天了 我们先来个 iOS 打包步骤 完成开发後再来就是要...