如果让你从零开始写一个 vuex 说说你的思路
- 实现一个响应式的 State,用于存储全局状态
- 允许用户定义 mutation 和 action,用来更改状态
- 做成插件的形式,绑定在 原型上,便于所有组件获取 store
- 实现 mapState 等方法,将状态代理到 vue 实例上
class Store { constructor(state) { this.state = Vue.observe(state); this.mutations = {}; this.actions = {}; } commit(type, payload) { const mutation = this.mutations[type]; mutation(this.state, payload); } dispatch(type, payload) { const action = this.actions[type]; action(this, payload); } registerMutation(type, handler) { this.mutations[type] = handler; } registerAction(type, handler) { this.actions[type] = handler; } }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论