首页 > 其他分享 >VUEX笔记

VUEX笔记

时间:2023-07-24 16:44:24浏览次数:49  
标签:... 映射 笔记 state mapActions increment VUEX store

VUEX笔记

  1. state

    state:{
    	ip:''
    }
    
  2. getters

    const getters = {
    	ip:state=>state.ip
    }
    
  3. mutations

    同步操作 this.$store.commit()

    mutations:{
    	SET_IP:(state,ip)=>{
    		state.ip = ip
    	}
    }
    
  4. actions

    异步操作 this.$store.dispatch()

    Action 类似于 mutation,不同在于:

    • Action 提交的是 mutation,而不是直接变更状态。

    • Action 可以包含任意异步操作

      actions:{
      	increment({commit}){
      		commit('SET_IP')
      	}
      }
      
  5. modules

vuex中的辅助函数

https://blog.csdn.net/AkeDuan/article/details/123574487

1.mapState,mapGetters

import { mapState,mapGetters } from 'vuex'

export default{
	computed: {
		...mapState({
			//箭头函数使代码更简练
			count: state => state.count
			// 传字符串参数‘count’ 等同于·state=>state.count·
			countAlias: 'count'
			
			//为了能够使用‘this’获取局部状态,必须使用常规函数
			countPlusLocalState(state){
				return state.count + this
			}
		}),
		...mapGetters({
		//把‘this.doneCount’ 映射为 ‘this.$store.getters.doneTodosCount’
			doneCount: 'doneTodosCount'
		})
	}
}

当定义的属性名与state/getters中的名称相同时,可以传入一个数组

//定义state
const state = {
	count:1
}

//在组建中使用辅助函数
computed:{
	...mapState(['count'])
	...mapGetters(['count'])
}

2.mapMutations,mapActions

methods:{
	...mapMutations({
	//将‘this.add()’ 映射为 ‘this.$store.commit('increment')’
		add:'increment'
	})
	//当属性名与mapMutations,mapActions中定义的相同时,可以传入一个数组
	...mapMutations([
	//将‘this.increment()’ 映射为 ‘this.$store.commit('increment')’
        'increment',
    //将‘this.incrementBy(amount)’ 映射为 //‘this.$store.commit('incrementBy',amount)’
        'incrementBy'  //`mapMutations` 也支持载荷:
	])
	...mapActions({
		//将‘this.add()’ 映射为 ‘this.$store.dispatch('increment')’
		add:'increment'
	}),
	//当属性名与mapMutations,mapActions中定义的相同时,可以传入一个数组
	...mapActions([
	//将‘this.increment()’ 映射为 ‘this.$store.dispatch('increment')’
        'increment',
    //将‘this.incrementBy(amount)’ 映射为 //‘this.$store.dispatch('incrementBy',amount)’
        'incrementBy'  //`mapMutations` 也支持载荷:
	])
}

总结:

  • mapStatemapGetters 都用computed来进行映射

  • 在组件中映射完成后,通过this.映射属性名 进行使用

  • mapMutationsmapActions都在methods中进行映射

  • 映射之后变成一个方法

多个modules

  • 在不使用辅助函数时
this.$store.commit('app/addCount')
  • 在使用辅助函数,辅助函数的第一个参数 给定命名空间的路径
computed:{
	...mapState('some/nested/module',{
		a:state=>state.a,
		b:state=>state.b
	})
},
methods:{
	...mapActions('some/nested/module',{
		'foo',// this.foo()
		'bar'//this.bar()
	})
}

或者使用createNamespacedHelpers 函数来创建一个基于命名空间的辅助函数

import { createNamespacedHelpers } from 'vuex'

const { mapState, mapActions } = createNamespacedHelpers('some/nested/module') //给定路径

//使用方法与之前相同
export default {
    computed:{
    //在 ‘some/nested/module’ 中查找
        ...mapState({
            a:state=>state.a,
            b:state=>state.b
        })
    },
    methods:{
    //在 ‘some/nested/module’ 中查找
        ...mapActions(['foo','bar'])
    }
}

标签:...,映射,笔记,state,mapActions,increment,VUEX,store
From: https://www.cnblogs.com/yanni-w/p/17577630.html

相关文章

  • TED Talk 学习笔记
    Howtospeaksothatpeoplewanttolisten|JulianTreasureAvoid:gossipjudgingnegativitycomplaning:viralmiseryexcuseslying:embroidery,exaggerationdogmatism:bombardsomebodyCornerstones/Foundations:HAIL,togreetoracclaimenthusiasitcal......
  • Lombok笔记
    Lombok项目是一个java库,它可以自动插入到编辑器和构建工具中,增强java的性能。不需要再写getter、setter或equals方法,只要有一个注解,就有一个功能齐全的构建器、自动记录变量等等。使用步骤:1:安装插件2:导入架包<dependencies><dependency><groupId>org.projectlomb......
  • AirNet使用笔记8
    摘要:SDD显示多监视源航迹;1、SDD同时显示多监视源航迹,在“DataSource”选择。.sdd_offline.conf.0不加点不是隐藏文件也行。[root@ACC-3conf]#more/home/cdatc/AirNet/bin/conf/.sdd_offline.conf.0B_OPS_IS_MAINTAIN=1......
  • C#中的重写与多态知识点整理(刘铁锰老师课堂笔记)
    在C#中,重写(Override)和多态(Polymorphism)是面向对象编程中的重要概念。通过重写和多态,我们可以更好地组织和管理代码,提高代码的可维护性和可扩展性。重写(Override)重写是指在派生类中重新实现基类中已经定义的方法。通过重写一个方法,我们可以为派生类中的该方法提供新的实现,同时让......
  • 【js学习笔记五十二】weakmap的应用
     目录前言导语 代码部分前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷导语WeakuMap编辑 代码......
  • 【js学习笔记五十一】weakmap
     目录前言导语 代码部分前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷导语WeakMap编辑 代码部......
  • c#学习笔记,实现物联网MQTT通信
    一、什么是MQTT MQTT协议由于其用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务,具有开销低、占用带宽低、即时通讯等优点,使其在物联网、小型设备、移动应用等方面有较广泛的应用,在工业物联网中,MQTT也有广泛的应用。主要有以下特点:使用发布/订阅消息模式,提供......
  • boss学习笔记 定位参数 zp_stoken
    1.在控制台搜索_$,找到到这个函数  2.在这个地方往下找,找到有return的地方,在这里打上断点,然后就可以点击下一页3.打上断点后,可以看到D的值已经生成了,和本地里面调试对比了很多次,发现这个L就和zp生成有关系,所以本地这里的L一样,代表和浏览器生成的值也是一样的 4.所以可......
  • Django学习笔记:第四章django的视图
    1.视图函数用于处理客户端的请求并生成响应数据。在属兔中使用函数处理请求的方式,被称为视图函数,也叫作FBV(FunctionBaseViews).一个简单的视图函数:在views.py里面配置fromdjango.httpimportHttpResponse#导入HttpResponse类defindex(request):#接收HttpRequest......
  • ChatGPT学习笔记1
    目录前言《原则一:明确具体的指令》《技巧1:使用区分符》《技巧2:结构化输出》《技巧3:条件是否满足》《技巧4:少样本提示》《原则二:给模型思考时间》《技巧1:给定步骤来补全》《技巧2:让模型先梳理再给结论》结语前言今天是我参加知识星球打卡的第七天了,感觉还是同时发来做自己的博客......