码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Vue.js之Vuex的使用


    目录

     1.state

    (1)$store.state.数据名

    (2)  利用mapState

    2.getters

    (1)$store.getters.对应名称

    (2)利用mapGetters

    3.mutations 

    (1)绑定事件

     (2)方法中利用commit调用Vuex中的方法

    (3)mutations中的方法如下:

     4.actions

    (1)$store调用

    (2)mapActions调用


    本文主要介绍Vue.js中Vuex的使用,其主要的作用就是实现组件之间的数据通信。

    通过Vue脚手架搭建的项目中,src目录存有store文件夹,其中的index.js引入Vuex,存放了组件所需的数据和方法等。如下图所示。

     1.state

    state中存储数据

    1. export default new Vuex.Store({
    2. state: {
    3. count: 10
    4. }
    5. })

    在组件中的访问方式:

    (1)$store.state.数据名

     <h1>当前值:{{$store.state.count}}h1>

    (2)  利用mapState

    1. import {mapState} from "vuex";
    2. export default {
    3. computed:{
    4. ...mapState(['count'])
    5. }
    6. }

     而后直接使用即可

    <h1>当前值:{{count}}h1>

    2.getters

    获取值时进行一些操作

    1. export default new Vuex.Store({
    2. state: {
    3. count: 10,
    4. },
    5. getters: {
    6. showMsg(s) {
    7. return s.count * 100
    8. }
    9. }
    10. })

    在组件中的访问方式:

    (1)$store.getters.对应名称

    <div>{{$store.getters.showMsg}}div>

    (2)利用mapGetters

    1. import {mapGetters} from "vuex";
    2. export default {
    3. computed:{
    4. ...mapGetters(['showMsg'])
    5. }
    6. }

     而后直接使用即可:

     <div>{{showMsg}}div>

    3.mutations 

    定义方法,操纵state中的数据。注意参数传递

    (1)绑定事件

    1. <div><button @click="addOne">点击加1button>div>
    2. <div><button @click="addN">点击加3button>div>

     (2)方法中利用commit调用Vuex中的方法

    1. export default {
    2. methods:
    3. {
    4. addOne(){
    5. this.$store.commit('add');
    6. },
    7. addN(){
    8. this.$store.commit('addN',3)
    9. }
    10. }
    11. }

    (3)mutations中的方法如下:

    1. mutations: {
    2. add(s) {
    3. s.count++
    4. },
    5. addN(s, step) {
    6. s.count += step
    7. }
    8. }

    即可完成调用

    当然,也可以利用mapMutations直接进行调用

    1. <div><button @click="add">点击加1button>div>
    2. <div><button @click="addN(3)">点击加3button>div>
    1. import {mapMutations} from "vuex";
    2. export default {
    3. methods:
    4. {
    5. ...mapMutations(['add','addN'])
    6. }
    7. }

     4.actions

    进行异步操作,同上述一样,有两种写法。

    此时index.js中内容如下:

    1. export default new Vuex.Store({
    2. state: {
    3. count: 10,
    4. },
    5. getters: {},
    6. mutations: {
    7. add(s) {
    8. s.count++
    9. },
    10. addN(s, step) {
    11. s.count += step
    12. }
    13. },
    14. actions: {
    15. waitOne(c) {
    16. setTimeout(() => {
    17. c.commit('add')
    18. }, 1000)
    19. },
    20. waitN(c, s) {
    21. setTimeout(() => {
    22. c.commit('addN', s)
    23. }, 1000)
    24. }
    25. }
    26. })

    (1)$store调用

    <div><button @click='timeout'>+1button>div>
    1. export default {
    2. methods:
    3. {
    4. timeout(){
    5. this.$store.dispatch('waitOne')
    6. }
    7. }
    8. }

     

    (2)mapActions调用

    <div><button @click='waitN(5)'>+Nbutton>div>
    1. export default {
    2. methods:
    3. {
    4. ...mapActions(['waitN'])
    5. }
    6. }

     

  • 相关阅读:
    Redis 分布式锁过期了,还没处理完怎么办?
    VictoriaLogs:一款超低占用的 ElasticSearch 替代方案
    linux性能分析(二)如何从日志分析 PV、UV
    apache几个重要概念和处理应对状态码的一些方法
    ESP8266-Arduino编程实例-定时器与中断
    Pycharm 2023 设置远程调试
    10.19作业
    单电源、轨到轨输入输出、高精度运放MS8551/8552/8554,可替代ADI的8551/8552/8554
    C++学习寄录(八.继承)
    [C++]共享内存cmake报错undefined reference to symbol ‘shm_unlink@@GLIBC_2.2.5
  • 原文地址:https://blog.csdn.net/weixin_44827643/article/details/126303512
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号