vuex

vuex中state、Getters、Mutations、Actions、Modules用法
  • 五大核心
属性作用
state存放公共数据
mutationsvuex改变vuex的唯一途径,事件方法
actions异步操作,异步方法处理数据
getters计算属性,相当于vue中的computed属性 只不过 getters是用于vuex的计算属性
modules导入其他模块的数据的方法
  1. state:vuex的基本数据,用来存储变量

  2. geeter:从基本数据(state)派生的数据,相当于state的计算属性

  3. mutation:提交更新数据的方法,必须是同步的(如果需要异步使用action)。每个 mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler)。
     回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数,提交载荷作为第二个参数。

  4. action:和mutation的功能大致相同,不同之处在于 ==》1. Action 提交的是 mutation,而不是直接变更状态。 2. Action 可以包含任意异步操作。

  5. modules:模块化vuex,可以让每一个模块拥有自己的state、mutation、action、getters,使得结构非常清晰,方便管理。


state的使用场景及方法
  • 第一种方法:在元素中使用
	<p>{{$store.state.token}}</p>
  • 第二种:在声明周期或者事件方法中使用
	this.$store.state.token
  • 辅助函数:
<p>{{token}}</p>
	<script>
	import { mapState } from 'vuex'
	export default {
		computed: {
	        ...mapState([
	            'token',
	        ]),
	    },
	</script>

mutations 的使用方法及场景
  1. 需要先在vuex的methods中传递事件,然后在vuex中接收事件使用,这种触发函数并携带参数的方法叫做载荷。
  2. 传递方法给vuex
// 将事件传递到vuex中
	this.$store.commit('changeTel', this.date)
  1. vuex接收事件
  2. mutations接收的事件有一个固定形参state,他代表state方法,第二个参数是传递过来的数据
	// 接收vue传递的事件
	mutations: {
        changeTel(state, val) {
            console.log(val)
        },
    },

辅助函数:

	<script>
	import { mapMutations } from 'vuex'
	export default {
		methods:{
	        ...mapMutations([
	            'changeTel',
	        ]),
	        exitUser() {
            	this.changeTel({tel: 110, age: 18})
        	},
	    }
	</script>

actions 的使用方法及场景

vuex中使用actions的方法

	actions: {
        changeAsync() {
            return new Promise((resolve) => {
                setTimeout(() => {
                    var list = [{
                        name: "商品一",
                        price: 100
                    },
                    {
                        name: "商品二",
                        price: 1200
                    }]
                    resolve(list)
                }, 1000);
            })
        }
    },

vue中使用异步操作的方法

	created() {
        this.$store.dispatch('changeAsync', '123').then(res => {
           this.changeShopList(res)
        })
    },

getters 的使用方法及场景

vuex中使用getters的方法

	getters: {
        // getter方法会接收一个参数state其实就是 store中的state方法
        changeAge(state) {
            state.name++
            return state.name
        }
    },

vue使用方法

	<p>{{changeDate1}}</p>
	<script>
	import { mapGetters } from 'vuex'
	export default {
	    computed: {
	        ...mapGetters([
	            'changeDate1'
	        ])
	    },
	</script>

modules 的使用方法及场景

其他模块相当于一个另一个vuex,可以将庞大的数据,分类封装成单独模块,然后引入到一个模块,提高代码的维护性
封装模块的例子

  	const moduleA = {
  	    state: {
  	        data: 'moduleA',
  	        data1: true
  	    },
  	    getters: {
  	        changeDate1() {
  	            return '你是个麻瓜'
  	        }
  	    },
  	    mutations: {},
  	    actions: {}
  	}
  	export default moduleA

将封装好的模块引入

	modules: {
        moduleA
    },

vue中使用,使用方法和不引入的使用方法一致

	<p>{{changeDate1}}</p>
	<p>{{moduleA.data}}</p>
	<script>
	import { mapState } from 'vuex'
	export default {
		computed: {
	        ...mapState([
	            'moduleA'
	        ]),
	        ...mapGetters([
	            'changeDate1'
	        ])
	    },
	</script>

  • 通过辅助函数mapState、mapActions、mapMutations,把vuex.store中的属性映射到vue实例身上,这样在vue实例中就能访问vuex.store中的属性了,对于操作vuex.store就很方便了。
  • state辅助函数为mapState,actions辅助函数为mapActions,mutations辅助函数为mapMutations。
  • (Vuex实例身上有mapState、mapActions、mapMutations属性,属性值都是函数)
【Koopman】遍历论、动态模态分解和库普曼算子谱特性的计算研究(Matlab代码实现)内容概要:本文围绕【Koopman】遍历论、动态模态分解和库普曼算子谱特性的计算研究展开,重点介绍基于Matlab的代码实现方法。文章系统阐述了遍历理论的基本概念、动态模态分解(DMD)的数学原理及其与库普曼算子谱特性之间的内在联系,展示了如何通过数值计算手段分析非线性动力系统的演化行为。文中提供了完整的Matlab代码示例,涵盖数据驱动的模态分解、谱分析及可视化过程,帮助读者理解并复现相关算法。同时,文档还列举了多个相关的科研方向和技术应用场景,体现出该方法在复杂系统建模与分析中的广泛适用性。; 适合人群:具备一定动力系统、线性代数与数值分析基础,熟悉Matlab编程,从事控制理论、流体力学、信号处理或数据驱动建模等领域研究的研究生、博士生及科研人员。; 使用场景及目标:①深入理解库普曼算子理论及其在非线性系统分析中的应用;②掌握动态模态分解(DMD)算法的实现与优化;③应用于流体动力学、气候建模、生物系统、电力系统等领域的时空模态提取与预测;④支撑高水平论文复现与科研项目开发。; 阅读建议:建议读者结合Matlab代码逐段调试运行,对照理论推导加深理解;推荐参考文中提及的相关研究方向拓展应用场景;鼓励在实际数据上验证算法性能,并尝试改进与扩展算法功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值