首页 > 其他分享 >Vuex系列之(五)求和案例

Vuex系列之(五)求和案例

时间:2024-02-29 20:14:49浏览次数:30  
标签:selectedNumber sumNumber 求和 value 案例 state context commit Vuex

求和案例

// index.js
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)
const actions = {
	// 对于不包含业务逻辑也不进行Ajax请求转发的操作可以不经过actions,直接调用mutations中的方法即可
	// jia(context,value){
	// 	console.log('actions被调用了',context,value)
	// 	context.commit('JIA',value)
	// },
	// jian(context,value){
	// 	context.commit('JIAN',value)
	// },
	
	// context:上下文对象,函数中缺啥就来这找
	// value:操作的值
	conditionAdd(context,value){
		if(context.state.sumNumber % 2){
			context.commit('JIA',value)
		}
	},
	addLater(context,value){
		setTimeout(()=>{
			context.commit('JIA',value)
		},500)
	}
}

// mutations中的key常为大写,用于区分actions中的key,同时,mutations还是真正操作数据的,所以以大写表示
// 如果key由多个单词组成,多个单词之间通过‘_’连接
const mutations = {
	// state:真正的state
	// value:操作的值
	JIA(state,value){
		state.sumNumber = value + state.sumNumber
	},
	JIAN(state,value){
		state.sumNumber = state.sumNumber - value
	}
}

// state中监测数据变化的原理同Vue
const state = {
	// 将共享数据交给state保管
	sumNumber: 0
}

export default new Vuex.Store({
	actions,
	mutations,
	state
})
<!-- Count组件 -->
<template>
	<div>
		<!-- 模板中获取state中的数据 -->
		<h1>当前求和为:{{$store.state.sumNumber}}</h1>
		<div>
			<select v-model="selectedNumber">
				<option :value="1">1</option>
				<option :value="2">2</option>
				<option :value="3">3</option>
			</select>
			<button type="button" @click="addition">+</button>
			<button type="button" @click="subscribe">-</button>
			<button type="button" @click="conditionAdd">当前和为奇数再加</button>
			<button type="button" @click="addLater">等一等再加</button>
		</div>
	</div>
</template>

<script>
	export default {
		name: 'Count',
		data(){
			return {
				selectedNumber: 0,
			}
		},
		methods:{
			addition(){
				this.$store.commit('JIA',this.selectedNumber)
				// this.$store.dispatch('jia',this.selectedNumber)
			},
			subscribe(){
				// 如果没有业务逻辑相关的操作,而且也不会发送Ajax请求,直接调用commit即可
				this.$store.commit('JIAN',this.selectedNumber)
				// this.$store.dispatch('jian',this.selectedNumber)
			},
			conditionAdd(){
				this.$store.dispatch('conditionAdd',this.selectedNumber)
			},
			addLater(){
				this.$store.dispatch('addLater',this.selectedNumber)
			}
		}
	}
</script>

标签:selectedNumber,sumNumber,求和,value,案例,state,context,commit,Vuex
From: https://www.cnblogs.com/wzzzj/p/18040026

相关文章

  • Vuex系列之(九)模块化和命名空间
    模块化+命名空间Vuex中的高级写法:Vuex的模块化编码把不同分类【业务分类不同,比如订单管理类的和商品管理类的】的mutation放在不同位置模块化编码的最终目标:对actions、mutations、state、getters中的内容进行分类整理1.Vuex模块化编码的步骤根据业务分类划分模块,在store......
  • 杜教筛——亚线性处理数论函数求和
    问题引入给定一个数论函数\(f(x)\),求\(\sum\limits_{i=1}^nf(i)\)。对\(n\le10^7\)甚至\(n\le10^8\)都是好做的,\(\mathcalO(n)\)解决即可,但如果\(n<2^{31}\)呢?这就需要亚线性时间复杂度的算法,杜教筛就是其一。杜教筛杜教筛是一种能在幂时间\(\mathcalO(......
  • 学习之请求和响应
    3.2请求和响应报文3.2.1报文的格式主体上分为报文首部和报文主体,中间空行隔开报文部首可以继续细分为"行"和"头"3.2.2请求报文客户端发给服务端的报文请求报文格式请求首行(请求行);GET/POST资源路径?参数HTTP/1.1(默认是通过GET请求获取服务器信......
  • grid布局小案例
    <style>.parent{display:grid;grid-template-columns:25%75%;/*grid-template-columns:1fr3fr;*//*同上*/height:100px;}.child{border:1pxsolidred;}</style><divclass="parent">......
  • 【专题】2024物联网平台产业研究报告及案例集报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=35235原文出处:拓端数据部落公众号前三季度,我国软件业务收入达87610亿元,同比增长13.5%。统计范围涵盖软件及信息技术服务、集成电路设计、基础软件、工业软件、信息安全、工业互联网平台和数据服务等。软件业务收入由软件产品、信息技术服务、信息......
  • JAVA基础:数组常见案例
    1.数组找最值packagecom.itheima.arry;publicclassArrayDemo7{publicstaticvoidmain(String[]args){//掌握数组元素求最值int[]faceScore={15,9000,10000,20000,9500,-5};intmax=faceScore[0];for(inti=1;i<faceS......
  • 假期vue学习笔记14 求和案例vue版本
     <template>  <div>    <h1>当前求和为:{{sum}}</h1>    <selectv-model.number="n">      <optionvalue="1">1</option>      <optionvalue="2">2</option>......
  • 假期vue学习笔记15 求和mapstate_mapgetter
     importVuefrom'vue'importAppfrom'./App.vue'importstorefrom'./store'Vue.config.productionTip=falsenewVue({  el:'#root',  render:h=>h(App),  store,  beforeCreate(){    Vue.......
  • 假期vue学习笔记16 vuex多组数据共享
     <template>  <div>    <h1>当前求和为:{{sum}}</h1>    <h1>十倍的和为:{{bigSum}}</h1>    <h1>{{xuexiao}}</h1>    <h1>{{xueke}}</h1>    <h3>下方总人数为:{{$store.state.personList......
  • ems案例之环境搭建
    依赖引入pom.xml<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.a......