vue笔记(六)使用vuex

《Vue入门到精通系列之六》--- Vuex详解_vue中vuex和store 我们强调, 不要再Mutation中进行异步操作.但是某些情况, 我们确实希望在Vuex中进行一些异步操作, 比如网络请求, 必然是异步的. 这个时候怎么处理呢?Action类似于Mutation, 但是是用来代替Mutation进行异步操作的.Action的基本使用代码如下:context是什么?context是和store对象具有相同方法和属性的对象.也就是说, 我们可以通过context去进行commit相关的操作, 也可以获取context.state等. 阅读详情

这里通过一个实例,来描述vuex的mapState , mapGetters , mapActions 

这里使用 Element UI  官网地址:http://element-cn.eleme.io/#/zh-CN/component/select

一、使用 Element UI 给出的demo,选择其一拷贝到本地项目

二、修改demo,得到如下:

    <div>
      <span>测试vuex</span>
      <template>
        <el-select v-model="optionValue" placeholder="请选择">
          <el-option
            v-for="item in options"
            :key="item.name"
            :label="item.name"
            :value="item.age">
          </el-option>
        </el-select>
      </template>
    </div>

optionValue是当前选中的值,options是所有下拉值的集合,这里是数组格式

三、js代码内引用vuex,methods内声明需要的mapActions ,computed内声明需要使用的mapState 和 mapGetters

<script>
  import { mapGetters, mapState,mapActions } from 'vuex'
    ......
methods: {
      ...mapActions('cache', ['updatePeople']),
    ......
computed:{
      author(){
        return this.$store.state.author
      },
      ...mapGetters('cache', ['avaliableMan']),
      ...mapState('cache', {
        allPeople: state => state.people
      }),
    }

mapActions 声明调用哪个模块文件,以及使用这个文件内的哪个action

mapState 声明调用哪个模块文件,以及使用这个文件内的哪个state

mapGetters 声明调用哪个模块文件,以及使用这个文件内的哪个getter

注:模块文件,用词可能不太准确,指 store 的各个子文件,意会即可

四、将 store 模块化,即上方提到的调用哪个模块文件

store.js

/*
  Vuex 应用的状态 state 都应当存放在 store.js 里面,Vue 组件可以从 store.js 里面获取状态,
  可以把 store 通俗的理解为一个全局变量的仓库。
  但是和单纯的全局变量又有一些区别,主要体现在当 store 中的状态发生改变时,相应的 vue 组件也会得到高效更新。
*/
import Vue from 'vue'
import Vuex from 'vuex'
//可以把store根据功能模块进行分割
import cache from './modules/cache'

Vue.use(Vuex)

const store = new Vuex.Store({
  //声明分割的模块
  modules:{
    cache
  },
  // 定义状态
  state: {
  },
  mutations:{
  },
  actions: {
  }

})

export default store

cache.js

export default {
  //开启,调用时加模块名,例如...mapGetters('cache', ['avaliableMan']) 的cache即模块名字
  namespaced: true,
  state: {
    people:[]
  },
  //getter内的方法以state作为参数,即上方定义的属性都可以操作
  getters:{
    //filter过滤,例如这里过滤了people的值,getter方法将得到过滤结果为true的值
    avaliableMan (state) {
      return state.people.filter(item => {
        return item.sex === '1'
      })
    },
    avaliableWoman (state) {
      return state.people.filter(item => {
        return item.sex === '0'
      })
    },
    //添加过滤条件,这里为性别,可以用来完成级联查询
    filterSex: state => (sex) => {
      if (!sex) {
        return state.people.filter(item => {
          return true
        })
      } else {
        return state.people.filter(item => {
          return item.sex == sex
        })
      }
    }
  },
  //只能在这里改变state数据
  mutations: {
    setPeople (state, data) {
      state.people = data
    }
  },
  actions: {
    initCache ({commit, dispatch}) {
      // 查询测试用户
      dispatch('updatePeople')
    },
    updatePeople ({commit}) {
      // 可以使用ajax获取缓存数据,这里仅为测试,使用静态数据
      let result={
        people:[
          {name:'张三',age:'20',sex:'1'},
          {name:'李四',age:'22',sex:'0'},
          {name:'王五',age:'21',sex:'1'}
          ]
      }
      //使用 store 内置的 commit 来提交到 mutations 内的方法,达到修改数据的目的。前者为方法名,后者为数据参数
      commit('setPeople', result.people)
    },
  }
}

前者为主文件,后者为各个子模块的示例代码

五、使用,测试

在 methods 内加赋值方法

      getOption:function () {
        // this.options=this.allPeople
        // this.options=this.avaliableMan
        this.options=this.filterSex('0')
      }

在 mounted 内调用对应方法,用于初始化

    mounted(){
      this.updatePeople()
      this.getOption()
    }

这样整体流程即,加载页面至 mounted 环节,调用updatePeople方法获取 cache模块的 people 属性值,调用getOption方法将值赋给 options 用来展示下拉数据。在getOption内可以指定是使用原state数据,还是过滤后的state数据。

 

PicoRV32 笔记 05 PicoRV32 本地总线接口 阅读详情

相关推荐

Unity学习笔记之【IK反向动力学操作】

反向动力学,简称IK。相较于正向动力学,反向动力学旨在子级对父级产生的影响。使用IK,可以实现根据目标位置或方向来计算并调整角色的关节(骨骼)链,以使角色的末端(如手臂、腿部等)达到预期的位置或取向。通过使用 Unity 的 IK 功能,你可以实现各种复杂的角色动画效果,如角色抓取、足部对齐、手臂跟随等。 2. 将所视的目标物体拖拽绑定 4. 实现效果如下 :移动角色时注释立方体 实现效果如下

m0_47351846的博客 2954

【Vue框架】Vuex状态管理详解与getters、mutations、actions使用以及四大辅助函数mapState、mapGetters、mapMutations、mapActions详解

mapMutations辅助函数的作用是把store中mutation内的方法映射到组件methods属性中,可以在组件中直接使用mutation里面的方法。原理:actions中的方法并不能直接修操作state中的数据,需要触发mutations中的方法,最终还需要通过mutations中的方法修改数据。mapActions辅助函数的作用是把store中actions内的方法映射到组件methods属性中,可以在组件中直接使用actions里面的方法。vuex里面的属性所有组件都可以直接调用。

量化Mike 5205

实战演练:基于Veristand Custom Device的硬件在环(HIL)数据流控制模块开发

本文详细介绍了基于Veristand Custom Device的硬件在环(HIL)数据流控制模块开发实战。通过LabVIEW环境配置、动态路由逻辑构建、实时处理核心开发及性能优化等关键步骤,帮助工程师快速掌握定制化HIL测试系统的开发技巧,提升测试效率与准确性。

weixin_29206669的博客 475

怎么使用vuex的数据和方法

Vue组件中使用Vuex的状态和方法,首先需要在组件中引入Vuex的mapState和mapActions辅助函数,然后使用。,它是一个从store的状态派生的值。,它映射到Vuex store的状态。,它映射到Vuex store的动作。来改变Vuex store中的状态。属性来访问状态和方法。在这个例子中,我们使用。方法被触发,它通过调用。

WDY66886688的博客 399

VMware VSAN 高级参数介绍(测试用)

VSAN 的策略驱动让我们看到了VSAN无穷的潜力,其设计思路相当新颖,在一个基础资源池上使用策略就能实现不同对象的区分服务,而目前没有其他厂家能到VMware这样的高度。 VSAN 呈现给用户配置很简单,但实际上设计及后台比较复杂。笔者无意间发现了VSAN的隐藏高级参数设置,有很多好玩的选项想分享出来。这些参数全部是针对每主机进行设置的。VSAN 中有很多默认设置,这些设置应该都是研发人员多次测试得出的最优值,修改可能导致环境异常,并不建议修改! 目录 参数1:全闪配置下 SSD 写缓存最大.

山水牧羊 2031

H3C防火墙旁路部署实战:网关迁移到防火墙后,如何配置DHCP和VLAN间隔离策略?

本文详细介绍了H3C防火墙旁路部署实战,重点讲解网关迁移到防火墙后的DHCP配置和VLAN间隔离策略。通过实际案例和配置示例,帮助网络工程师解决传统核心交换机架构的性能瓶颈和安全管控问题,实现精细化访问控制。

weixin_42549451的博客 416

Vue铺垫知识 --- ES6模块化

Vue框架 内容管理VueVue前置内容ES6模块化默认导出【暴露】和默认导入按需导入和按需导出直接导入并执行模块中的代码安装node,vue安装vue创建vue项目vue createvue init webpackpromise 解决回调地狱回调函数的实例 -- 顺序读取文件使用fs模块 -- 回调函数读取文件使用then-fs读取文件内容【promise】通过.catch捕获错误,.finally进行强制执行Promise的静态方法 --- Promise.all()Promise的静态方法 ---

a23452的博客 1950

国产数据库PolarDB-X实战:5分钟快速搭建本地开发环境(附Docker一键部署脚本)

本文提供了一份详尽的国产分布式数据库PolarDB-X本地开发环境搭建指南。通过Docker Compose一键部署脚本,开发者可在5分钟内快速启动一个功能完整的PolarDB-X实例,涵盖环境准备、脚本解析、连接验证及日常维护,极大简化了国产数据库的入门和体验流程。

weixin_29246195的博客 358

mapGetters的使用

如果一个变量或对象需要在多个页面和组件中使用,那么,可以使用mapGetters。2.在method同级上放入computed。getters中的state。列如:getters: {

weixin_48567214的博客 6748

中文实体关系抽取数据集大盘点:从百度Duie2.0到医疗CBLUE,哪个更适合你的NLP项目?

本文全面分析了中文实体关系抽取领域的主流数据集,包括百度DuIE 2.0、医疗CBLUE等,帮助开发者根据项目需求选择最适合的数据集。文章详细对比了各数据集的特点、适用场景及优化策略,为自然语言处理项目提供实用指南。

weixin_29284657的博客 121

YoloV8改进策略:主干网络篇|MobileNetV4主干替换YoloV8的BackBone(独家原创)

今年,轻量级王者MobileNetV4闪亮登场!在我们这篇文章里,我们把MobileNetV4加入到了YoloV8中,替换原有的BackBone。哈哈,你猜怎么着?效果超赞!文章里详细记录了改进过程,给那些正在为创新点子发愁的小伙伴们提供了满满的灵感。嘿,想要发表关于轻量级改进的论文?这篇文章绝对是你的首选参考!

m0_47867638的博客 3192

vuex 辅助函数mapGetters基本用法

vuex 辅助函数mapGetters基本用法

weixin_48927323的博客 1万+

AI Agent智能体在Android开发中的应用

本文探讨了AIAgent(智能代理体)在Android开发中的应用,涵盖技术原理、实践案例与未来趋势。AIAgent通过机器学习、自然语言处理等技术实现代码生成、测试自动化及性能优化,显著提升开发效率。例如,强化学习模型可优化APP响应时间(公式:$\text{响应时间}=f(\text{负载},\text{资源})$),自动化测试覆盖率提升至95%。

郑伟强dev的专栏 124

Vue2笔记(六)vuex

vuex 什么是xuex 官方解释: vuex是一个专门为vue.js开发的状态管理模式 vuex也集成到vue的官方调试工具devtools extiension,提供了诸如零配置的time-travel调试,状态快照导入导出等高级调试功能 状态管理到底是什么? 状态管理模式,集中式存储管理等,可以简单地将其看成把需要多个组件共享的变量全部存储在一个对象里面。然后将这个对象放在顶层的vue实例中,让其他组件可以使用。 可以把状态管理看做是一个公共变量的管理。这个公共变量是事实可更新的。有点类似于vue实例

luobobei的博客 530

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

vue笔记六:vuex状态管理

一、初识vuex 二、vuex配置选项 actions mutations getters modules plugins devtools 三、vuex中的API 模块注册 模块替换 四、购物车案例

jinyeran的博客 1903

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

vuejs从入门到精通(六)笔记,数据存储:webStorage、vuex

Web Storage 是HTML5引入的一个特性,用于在浏览器中存储键值对数据。它分为两种:1、- 用于长期存储数据,数据不会过期,除非显式地通过JavaScript删除。2、- 用于临时存储数据,仅在当前会话(页面关闭后)有效。1、存储内容大小一般支持5MB左右;2、浏览器通过window.sessionStorage 和 window.localStorage 属性来实现本地存储机制;3、相关API:接收一个键和值为参数,会把键值对添加到存储中,如果键名存在,则更新对应的值;

qq_34573044的博客 546

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Vue2.0 学习笔记六 VueX

1. 什么是VueX Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。可以简单的将其看成把需要多个组件共享的变量全部存储在一个对象里面。 1.1 单页面的状态管理 1.2 多界面状态管理 Vue已经帮我们做了单界面的状态管理,但是如果多个

立场简单的博客 650

Vue笔记 (六)Vuex状态管理—store

vuex

努力努力再努力w 480

Vue.js学习笔记(六)(Vuex)

1.Vuex的基本使用 意义:

greenhand_coder 271

【Vue2.0】笔记(六)-Vue-cli、Vuex、mockjs、gitee、github

前端工程化(四)Vue脚手架(1) 基本用法1.1(五)Element-Ul的基本使用二级目录三级 (四)Vue脚手架 Vue脚手架可以快速生成Vue项目基础的架构。官网地址:https://cli.vuejs.org/zh/ (1) 基本用法 安装3.x版本的Vue脚手架: npm install -g @vue/cli 卸载命令:npm uninstall -g vue-cli 检查命令 Vu...

小女不才 2612

vue3中使用Vuex

详细介绍了vue3中使用Vuex的相关特性和方法,,包括State,Getter,Mutations,Action,Module和一些辅助函数的使用方法和技巧

九仞山的专栏 8916

《Vue入门到精通系列之六》--- Vuex详解

Vue系列教程持续更新中 全套Vue资料等你来拿

白大锅的博客,毕设WangLoveBai_999 4万+

Vue(六)——vuex

在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理,也是一种组件间通信的方式,且适用于任意组件间通信。

m0_61016904的博客 2万+

在vue中如何使用vuex

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 + 库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

weixin_46165123的博客 7926

在vue3中使用vuex

vuex在中大型项目中的应用十分广泛,通常会把全局都用到的数据放在vuex中,方便其他页面进行使用,在项目中,vuex中存放的数据大部分与user_id,权限等信息相关,那么在vue3中该怎么使用vuex呢?带着这个问题,在本篇文章中,咱们一起分析下 其实vue3中使用vuex和vue2使用vuex大体相同,都是通过state存放数据,通过mutations去改变vuex中的数据,对于异步的情况,通过actions提交mutations中的方法进而改变vuex中的数据,带着...

优快云_156的博客 1万+

Vue全家桶之VueX(六)

✍ 1、Vuex 1.1、什么是Vuex 官方解释:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。 它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。 状态管理到底是什么? 状态管理模式、集中式存储管理这些名词听起来就非常高大上,让人捉摸不透。 其实,你可以简单的将其看成把需要多

Augenstern_QXL的博客 1648
上一篇: vue笔记(五)表单验证
下一篇: git 常用命令
gcc_front
博客等级 码龄9年 16粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值