码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 153-Vue中的vuex内的辅助函数——mapState,mapGetters,mapMutations,mapActions的用法


    153-Vue中的vuex内的辅助函数——mapState,mapGetters,mapMutations,mapActions的用法

    首先查看目录:

     

    此文章所涉及到的代码:src/components/Comp1.vue

    store/index.js

    views/HomeView.vue

    其它的都是初建的代码,未做改动,此处不展示。

    Comp1.vue代码如下:

    1. <template>
    2. <div>
    3. <p>{{num}}p>
    4. <p>{{title}}p>
    5. <p>{{dbNum}}p>
    6. <button @click="chanNum(1)">同步按钮button>
    7. <button @click="asyncChanNum(100)">异步按钮button>
    8. div>
    9. template>
    10. <script>
    11. import { mapMutations, mapState,mapActions,mapGetters } from 'vuex'
    12. export default {
    13. methods:{
    14. ...mapMutations(['chanNum']), // 同步
    15. // add(){
    16. // this.$store.commit('chanNum',10)
    17. // },
    18. ...mapActions(['asyncChanNum']), // 异步
    19. // add1(){
    20. // this.$store.dispatch('asyncChanNum',100)
    21. // }
    22. },
    23. computed:{
    24. ...mapState(['num','title']),
    25. // num(){
    26. // return this.$store.state.num
    27. // }
    28. ...mapGetters(['dbNum']),
    29. // dbNum(){
    30. // return this.$store.getters.dbNum
    31. // }
    32. },
    33. data () {
    34. return {
    35. }
    36. }
    37. }
    38. script>
    39. <style lang = "less" scoped>
    40. style>

     store/index.js代码如下:

    1. import Vue from 'vue'
    2. import Vuex from 'vuex'
    3. Vue.use(Vuex)
    4. export default new Vuex.Store({
    5. state: {
    6. num:11,
    7. title:'标题'
    8. },
    9. getters: {
    10. dbNum(state){
    11. return state.num*2
    12. }
    13. },
    14. mutations: { // 同步
    15. chanNum(state,payload){
    16. state.num+=payload
    17. }
    18. },
    19. actions: { // 异步
    20. asyncChanNum({commit},payload){
    21. setTimeout(()=>{
    22. commit('chanNum',payload)
    23. },1000)
    24. }
    25. },
    26. modules: {
    27. }
    28. })

    views/HomeView.vue代码如下:

    1. <template>
    2. <div class="home">
    3. <HelloWorld />
    4. div>
    5. template>
    6. <script>
    7. // @ is an alias to /src
    8. import HelloWorld from '@/components/Comp1.vue'
    9. export default {
    10. name: 'HomeView',
    11. components: {
    12. HelloWorld
    13. }
    14. }
    15. script>

    下面显示操作步骤:

    最终效果如下:

     

     

  • 相关阅读:
    Mysql高阶语句 (一)
    赶紧收藏!中秋节营销必备文案和海报,拿了就能用!
    互融云软件系统提供商|一款成熟的数字资产交易系统
    明星录制祝福视频:传递温情与关怀的独特方式
    Winform的UI帮助类——部分组件会使用到DevExpress组件
    【前端】Vue实现个人空间
    PLC编程基础之数据类型、变量声明、全局变量和I/O映射(CODESYS篇 )
    原生微信小程序学习第一部分
    Git 学习(一)---- 常用命令
    【Java】网络编程
  • 原文地址:https://blog.csdn.net/jolinoy/article/details/126288671
  • 最新文章
  • 【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号