码农知识堂 - 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. }

     

  • 相关阅读:
    将绿色计算进行到底,蚂蚁集团四大硬核黑科技全公开
    vscode python run code 中文乱码
    JavaScript
    商城项目03_人人前后端项目、逆向工程、common工程搭建、coupon以及各个微服务工程搭建
    【轻松搞定】Edge 或 Google 无法上网问题
    springboot老年康复中心信息管理系统的设计与实现毕业设计-附源码250859
    Vue+SpringBoot打造学生综合素质评价系统
    计算机毕业设计Javan音乐剧网站(源码+系统+mysql数据库+lw文档)
    博弈论与SG函数入门
    LINUX
  • 原文地址:https://blog.csdn.net/weixin_44827643/article/details/126303512
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号