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

     

  • 相关阅读:
    开发者模式:单例模式
    文本直接生成20多种背景音乐,免费版Stable Audio来了!
    一文搞定POI,再也不怕excel导入导出了
    mybatis缓存知多少
    电脑系统重装后怎么用打印机扫描出文件?
    [0CTF 2016]piapiapia
    JSD-2204-Dubbo实现微服务调用-Seata-Day03
    RUST运算符重载
    在carla环境下使用BasicAgent进行导航
    iOS——引用计数(一)
  • 原文地址:https://blog.csdn.net/weixin_44827643/article/details/126303512
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号