首页 > 其他分享 >Vue学习笔记59--store(getters + )

Vue学习笔记59--store(getters + )

时间:2024-03-25 18:46:06浏览次数:14  
标签:Vue 59 Increment -- sum value state context store

store(getters)

 示例一:

Count.vue

<template>
  <div>
    <h3>当前求和为:{{ $store.state.sum }}</h3>
    <h3>当前求和*10为:{{ $store.getters.bigSum }}</h3>
    <!-- <select v-model="selectNo">
      <option :value="1">1</option>
      <option :value="2">2</option>
      <option :value="3">3</option>
    </select>   
    等价于下面写法
   -->
    <select v-model.number="selectNo">
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
    </select>
    <button @click="increment">+</button>
    <button @click="decrement">-</button>
    <button @click="incrementOdd">当前为奇数再加</button>
    <button @click="incrementWait">等一下再加</button>
  </div>
</template>

<script>
export default {
  name: 'Count',
  data () {
    return {
      selectNo: 1,//当前选择的数字


    }
  },
  mounted () {
    console.log('count this==>', this)
    console.log('count this.$store==>', this.$store)
  },
  methods: {
    increment () {
      // this.$store.dispatch('increment', this.selectNo)

      // 如果没有业务路基处理,可直接使用mutations中对应的方法
      this.$store.commit('Increment', this.selectNo)
    },
    decrement () {
      // this.$store.dispatch('decrement', this.selectNo)

      // 如果没有业务路基处理,可直接使用mutations中对应的方法
      this.$store.commit('Decrement', this.selectNo)
    },
    incrementOdd () {
      this.$store.dispatch('incrementOdd', this.selectNo)
    },
    incrementWait () {
      this.$store.dispatch('incrementWait', this.selectNo)
    },
  },

}
</script>

<style scoped>
button {
  margin: 6px;
}
</style>

src/store/index.js

// 该文件用于创建vuex中最为核心的store
// 引入Vue
import Vue from 'vue'
// 引入vuex
import Vuex from 'vuex'
// 使用插件
Vue.use(Vuex)

/*  准备actions--用于相应组件中的动作
1.context--miniStore
2.actions:建议逻辑处理在该处处理
3.如果没有业务路基处理,可直接使用mutations中对应的方法
 */
const actions = {
  /*  increment (context, value) {
     context.commit('Increment', value) //Increment 为 mutations中的方法
   },
   decrement (context, value) {
     context.commit('Decrement', value)
   }, */
  incrementOdd (context, value) {
    if (context.state.sum % 2) {
      context.commit('Increment', value)//等价于Increment
      // context.commit('IncrementOdd', value)//等价于Increment
    }
  },
  incrementWait (context, value) {
    setTimeout(() => {
      context.commit('Increment', value)//等价于 IncrementWait
      // context.commit('IncrementWait', value)//等价于Increment
    }, 1000);

  },
}

/* 准备 mutations
用于操作数据(state)  
不建议写业务逻辑 
*/
const mutations = {
  Increment (state, value) {
    state.sum += value
  },
  Decrement (state, value) {
    state.sum -= value
  },
  IncrementOdd (state, value) {
    // if (state.sum % 2) {  //去action中处理哦
    state.sum += value
    // }
  },
  IncrementWait (state, value) {
    state.sum += value
    // setTimeout(() => {
    //   state.sum += value
    // }, 1000);
  },
}

// 准备state--用于存储数据(state中存放的就是全局共享数据)
const state = {
  sum: 0,//当前的和
}

// 准备getters--用于将state中的数据进行加工
const getters = {
  bigSum (state) {
    return state.sum * 10
  }
}

//创建store
// const store = new Vuex.Store({

//创建并暴露store
export default new Vuex.Store({
  actions: actions,
  mutations: mutations,
  state: state,
  getters
})
// 暴露store
// export default store

 

 

  

标签:Vue,59,Increment,--,sum,value,state,context,store
From: https://www.cnblogs.com/YYkun/p/18094986

相关文章

  • 使用Docker快速搭建Web服务器Nginx
    简介在现代Web开发中,Nginx作为一款高性能的Web服务器和反向代理服务器,被广泛应用于各种项目中。而使用Docker可以极大地简化服务器的部署和管理过程。本文将介绍如何利用Docker快速搭建NginxWeb服务器,并简要说明一些常见的配置和使用方法。第一步:拉取镜像在拉取镜像时,我们可......
  • 部署ES集群
    首先,ES集群的运行需要大量内存映射,所有我们需要修改linux的配置修改/etc/sysctl.conf文件vi/etc/sysctl.conf添加内容,该配置能修改linux对单个进程内存映射的限制vm.max_map_count=262144sysctl-p为从指定的文件加载系统参数,不指定的话默认为/etc/sysctl.conf文件sysctl......
  • Reflective journal
    Inthelasttwoweeks,I'velearnedmultimodalwriting,characterdescription.Awritermustpaintwithvividimagery,capturingnotjustthecharacter'sappearancebuttheessenceofwhotheyare.Dialogueisapowerfultool,revealingpersonal......
  • 分享一份Python实现的视频播放器源码
    大家好,我是Python进阶者。一、前言前几天在Python白银交流群【云何应住】问了一个Python实现的视频播放器源码问题。问题如下:Python实现的视频播放器源码,能运行,简单明了,有吗?二、实现过程这里【瑜亮老师】一开始给了一个代码,可能有点老,后来给了一份比较新的:frommoviepy.edit......
  • tomcat中部署finereport的一种方式
    1、本文目的在tomcat中直接访问FineReport的cpt文件,跳过登录。2、执行步骤1.创建工作目录将%Tomcat_HOME%\webapps\examples文件复制一份出来,重命名为FR,只保留WEB-INF文件夹,其余全部删除。2.修改web.xml文件编辑%Tomcat_HOME%/webapps/FR/WEB-INF下的web.xml,在最后一个ser......
  • 使用Selenium模拟鼠标滚动操作的技巧
    前言在进行Web自动化测试或数据抓取时,模拟用户操作是至关重要的。其中之一就是模拟鼠标滚动操作,这在许多情况下都是必需的。使用Selenium,一种流行的Web自动化测试工具,可以轻松实现这一功能。模拟鼠标滚动的重要性网页内容可能会因为需要用户滚动才能加载而延迟显示,或者是在滚......
  • ubuntu修改登录信息(本机和SSH登录)
    1.MOTD1.1什么是MOTDmotd是messageoftheday的缩写,意思是“当天的提示信息”,通常在用户成功登录到Linux后出现,该信息可以从/etc/motd文本文件中找到。提示:UNIX/Linux系统管理员也通常会把一些重要的信息写到 /etc/motd里面,以方便其他人或自己下次成功登录时需要注意什么和......
  • romax_CAD_Fusion
    移动及旋转模型:第4步是必选的,不然移动不了。 按ctrl+z可以退回上一步,点小红⚪点可以简化特征 要注意如果不出来绿色对勾,很可能是有多余的线,选中线点橡皮擦删除: 轴上添加新轴承,定义轴承内部参数,估算当量 ......
  • 空指针、野指针和const修饰指针的区别
    关键:空指针和野指针都不允许访问,否则会报错。空指针指向变量中内存编号为0的空间用途1.初始化指针变量,并且空指针指向的内存不能进行解引用intmain(){ //指针变量p指向内存地址编号为0的空间 int*p=NULL; //访问空指针报错 //内存编号0~255为系统占用内......
  • SpringBoot3项目使用Knife4j时访问doc.html出现Knife4j文档请求异常且开发者工具网络
    1.在各个pom.xml中替换Knife4j的依赖版本,升级为4.0以上,如果找不到依赖可以在Maven配置中多添加几个镜像,或者使用汉化插件重启IDEA;<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId......