4.vue知识点vuex


一、基础示例

1.目的

这块主要是能存取数据并且 computed 和 watch vuex上的数据就可以了

2.定义vuex

  • 过程
    • (1).在store的state中存入了counter,mutations中定义了函数
      vuex1

      vuex2

    • (2).然后把这个store放在了#app对象中
      vuex3

3.使用vuex

  • (1)组件定义

        <div>localCounter:{{localCounter}}</div>
        <button @click="addCounter">修改localCounter</button>
    

    vuex4
    接着在组件中可以直接通过this.$store.state.counter调用,通过commit(方法名)的方式调用mutations中定义的方法

  • (2)computed中

    • 代码
      vuex5
      vuex6

      注:commit(‘方法名’,‘还可以附加属性或者对象(大多数情况),便于方法调用’)

    • 效果
      点击四次按钮:
      vuex7

  • (3)watch中监听store中counter值的变化

    • 代码
      vuex8

    • 效果
      打印变化过程:
      vuex9

二、mapState

1.作用

简化状态的获取

2.使用

  • (1)store定义
    vuex10

  • (2)组件使用store里面的数据

        <div>localName:{{localName}}</div>
        <div>localAge:{{localAge}}</div>
    

    mapState 函数返回的是一个对象,和局部计算属性混合使用需要借助 …(对象展开运算符)

        computed:{
            ...mapState({//与局部计算属性混合使用
                localName:state=>state.myobj.name,
                localAge:'age'//传递字符串'age'等价于   state=>state.age
            })
        },
    
  • (3)效果
    vuex11

3.注意

  • (1)说明:
    传递字符串’age’这种方式只适用于获取state.age,不可以用来获得state.myobj的内部属性,即’myobj.age’是不等价于 state=>state.myobj.age的,但是可以先获取对象’myobj’,然后再利用’.'获取对象属性

  • (2)代码

        <div>localName:{{localobj.name}}</div>
        <div>localAge:{{localobj.age}}</div>
    
        ...mapState({//与局部计算属性混合使用
            //localName:state=>state.myobj.name,
            localobj:'myobj'//传递字符串'myobj'等价于   state=>state.myobj
        })
    
  • (3)效果
    vuex12

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RtNZhhUa-1663124384159)(/assets/vuex12.png)]

参考

①官方文档
②最简单的 Store
③mapState 辅助函数

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值