Vuex 笔记 总结

### vuex 

#### ---State    状态   ...mapstate([])
---> 1 组件访问 Stae中数据的第一种方式
    this.$store.state.全局数据名称

---> 2 组件访问 Stae中数据的第二种方式
     (1)导入mapState函数
        import {mapState} from 'vuex'
     (2)将导入的mapState 函数将组件需要的映入到组件的计算属性中
        computed:{
            ...mapState(['count'])
        }
      (3) 把count 写到页面
### ----Mutation
#### 改vuex的数据 不可以直接改 
### 要在store页面中mutation更改 使用页面通过commit()触发
     更改 store 数据要用 mutation 在mutation里修改
        1首先在 触发的点击事件定义
            add(){
                调用commit函数 触发mutations
                this.$stotre,commit("store定义的名字(add)")
            }
        2然后在store文件中定义 修改
            mutations:{
                add(state){
                    satate.count ++
                }
            }
        3 还可以自定义更改数值 
        add(){
                调用commit函数 触发mutations
                this.$stotre,commit("add",4)
            }
        4然后在store文件中定义多加个参数接受
            mutations:{
                add(state,str){
                    satate.count += str
                }
            }
### ----Action
### vuex异步 只能在store页面中 actions中 使用页面通过dispatch()触发
### 注意 在store页面 不可以直接修改state数据 必须通过context.commit触发某个mutation才行
        1 在store页面写
            // context 相当于store实例
            actions: {
                addAsync(context){
                setTimeout(()=>{
                    <!-- add是你掉用mutations方法 -->
                    context.commit('add');
                },1000)
                }
            },
        2 // 异步的
            ch2(){
                this.$store.dispatch('addAsync');
            }

###  Getter  相当于计算属性
### Getter 对于Stoter 中数据进行加工处理 形成新的数据
    1 使用getters的第一种方式 
### 用法1  this.$store.getters.名称
    页面用{{this.$store.getters.名称}}调用 store中getters定义的逻辑

    2 使用getters的第二种方式
###  用法2 
    1页面中 使用结构 import {mapGetters} from 'vuex'
    2 在computed:{
            ...mapGetters(['store的逻辑名'])
            }

---Getter 中的方法有两个参数 
    --state 当前vuex 对象中的状态对象
    --getters 当前getters对象,用于将getters下的其他getter拿来用
    ...mapGetters 辅助函数仅仅是将store中的getter映射到局部的计算属性
### Module  多组配套↑↑↑ 的集合
    当项目庞大 状态非常多时 可以采用模块化管理模式 vuex允许我们将store分割成模块(module)
    每个模块 都拥有自己的state  mutation  action  getter 甚至是嵌套子模块进行从上到下的方式分割
    namespaced:true 每组导出都得命名空间

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值