
获得徽章 1
- #1024一起掘金# 很久以前,那还是我用win98的时候有次我系统崩溃了,因为我是电脑白痴,我朋友给我介绍了一个高手来帮我修电脑。
他看了一下电脑,问我有没有98的盘,我说没有。
他想了一下,叫我把固定电话拿给他,我想修电脑要电话干什么,但人家是高手,我也不好说什么,就把电话拔下来给他了。
他把电话线空着的一头接在电脑的一个插孔内,然后进入了dos,然后就开始在电话上不停的按着键,他按键的速度非常快,但是只按0,1两个键,我搞不懂这有什么用,但也不敢问,看了半个多小时,他还是不停的按这两个键,我渐渐的有些困,我问他这东西要搞多久,他说要几个小时,我给他倒了杯茶,就一个人去隔壁睡觉了。
醒来的时候,一看已经过了4个多小时,我起身到隔壁,看见他正在98里面调试,过了一会儿,他说,你试试,我坐上椅子用了一下,真的好了,我当时也不懂电脑,谢过人家就走了。
后来我慢慢对电脑有了了解,终于了解,原来当时那位高手是用机器语言编了一个98系统,我后来问我朋友那位高手的下落,我朋友说前几年去了美国之后,杳无音讯…展开48 - Day7
在Vue项目开发中涉及多个组件之间使用同一个状态时,传参就会变得繁琐,因此需要Vuex介入进行状态的管理与组件间通信的管理。
Vuex 主要应用于多个视图依赖同一个状态 、来自不同视图的行为需要变更同一个状态。
【Vuex的使用】
通过vue-cli 添加vuex插件,在src目录下的store目录的index.js,引入并注册Vuex,初始化Vuex.store,并设置开发的严格模式,完成后再将 store 挂载到 Vue。
1.状态(state)
共享的状态都放在写在Vuex.store.state 对象里面。
- 获取
获取状态可以通过 直接使用 this.$store.state[属性] 和 使用 mapState 两种方式。
- 修改
引用Vuex后,在Vue项目开发环境中开启严格模式,修改数据就必须通过 mutation 来处理。
使用mutation的方式是通过在mutation中设置类似Java的类私有属性的setter方法,传入需要修改的状态和修改的值,并在组件中通过 this.$store.commit() 触发mutation 或者 在组件methods中 使用 mapMutations 将 mutation 映射到组件methods中使用。
2.异步处理(action)
actions是用来处理异步任务的,异步任务必须通过 Action 触发 Mutation 间接改变状态。
使用 Action的方式是先在actions中定义异步方法来调用mutation 中的方法,再在组件中通过引入 vuex 中的mapState 和 mapMutations,将 store 映射到当前组件的计算属性,使用this.$store.dispatch() 调用actions中的方法改变状态 或 直接使用 mapActions 映射调用actions的方法。
3. getter
vuex 中的getter类似于 vue中的计算属性,可以对 state 做一些包装简单性处理。
getter 得到的数据可以通过this.$store.getters[名称] 和 mapGetters映射计算属性进行使用。展开21