Vue全家桶-vuex

Vue全家桶-Vuex 1. Vuex 概述 阅读详情

1.什么是Vuex?

1.官方解释:Vuex是一个专门为Vue.js应用程序开发的状态管理模式,它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
2.状态管理是什么?
 你可以简单的将其看成是把多个组件共同需要的变量全部存储在一个对象里,然后你把这个对象放在最顶层的vue实例中,让其他组件使用,这样多个组件就可以共享这个对象中的所有变量属性
3.有什么状态需要我们在多个组件之间共享呢?
 用户的登录状态、用户名称、头像、地理位置、商品的收藏、购物车中的物品等,我们都可以将其放在Vuex中,对其进行保存和管理,而且他们还是响应式的

2.如何安装Vuex?

npm install --save vuex

3.如何使用Vuex?

3.1首先在我们的src目录下创建store目录项,并在该目录下创建接口文件index.js
3.2 在接口文件index.js下引入并使用Vuex插件
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({

})
3.3在项目的接口文件main.js中,引入并挂载我们实例化的store对象
补充:单界面管理状态和多界面管理状态

1.单界面管理状态
在这里插入图片描述
(1)state:状态(你可以将其看做是当前组组件的data中的属性)
(2)View:视图层,可以针对State的变化,显示不同的信息
(3)Actions:这里的Action主要是用户的各种操作如点击、输入等,导致我们的State发生变化
2.多界面管理状态
 vue已经帮我们做好了单个界面的状态管理,但是多个界面都试图依赖同一个State(一个状态改变,多个界面同时进行更新),不同界面的Action都想修改同一个State,此时Vuex就提供了这样的功能,将多个组件共享的状态抽取出来,交给Vuex统一管理。之后,每个组件按照Vuex规定好的方式来进行访问和修改。
3.vuex的状态管理图
在这里插入图片描述#### 3.4为了达到我们Vuex功能清晰明了,我们根据vuex状态管路图对store目录进行基本划分
在这里插入图片描述

3.4 state

state同来存放我们从服务器请求过来的一些公共组件公用的状态对象

补充 :单一状态树

(1)单一状态树就是单一数据源的意思(通常来说,我们只有一个Store对象,Store对象中只有一个state对象)
(2)如果你的状态信息是保存在多个Store对象里的,那么之后的管理和维护等等都会变得特别困难
(3)所以Vuex也使用了单一状态树来管理应用层级的全部状态
(4)单一状态树能够让我们最直接的找到某个状态片段,而且在之后的维护和调试过程中,也可以非常方便的管理和维护
(5)代码结构:

/*
State:状态对象
 */
export default {
  info: {}, // 商家信息
}

3.5 mutations

(1)vuex的store对象状态更新的唯一方式:提交Mutation
(2)mutation主要包括两部分:
    -事件类型(type)
    -一个回调函数,调用该函数的第一个参数就是state
(3)mutation的定义方式:

mutation :{
  increament(state){
    state.count++
  }
}

(4)组件中通过mutation提交更新:

increase: function () {
  this.$store.commit('increament');
}

 上述commit进行提交是一种普通方式,vue还提供了另一种风格,它是一个包含type属性的对象,此种方法为我们提供了传参的功能

increase: function () {
  this.$store.commit({
  	type:changeCount,
  	count:100
  });
}

 此种提交方式,Mutation中的处理方式是将commit中的对象作为payload使用,达到我们传递参数和处理参数的目的

mutation :{
  changeCount(state,payload){
    state.count = paylo。count;
  }
}

(5)mutation的响应规则
   Vuex中的store中的state是响应式的,当state中的数据发生变化时,Vue组件也会自动更新,这也就是我们为什么遵守一些Vuex对应的规则:
    -提前在state中初始化所需的属性
    -当给state对象中增加新属性时,使用以下两种方式:*使用Vue.set(obj,‘new’,123)
                             *用新对象给旧对象赋值
在这里插入图片描述
(6)mutation常量类型

   在上述(3)、(4)中我们可以看到组件中mutation的提交和mutation的相关操作的type值是相同的,为了防止我们在书写代码时二者写的不一致导致错误出现,我们新建一个mutation-types.js文件,用来定义mutation常量,然后在提交对应mutation操作的组件和mutation中分别倒入此常量类型并对之前的事件类型做替换即可

3.6 actions

    通常情况下,Vuex要求我们Mutations里面的方法必须是同步方法,主要原因是当我们使用devtools时,可以帮助我们捕获mutations的快照,但是如果是异步操作,那么该工具将不能很好的追踪这个操作什么时候被完成,所以通常情况下,不要在mutations中进行异步操作,但是某些情况下我们又希望在Vuex中进行异步操作,比如网络请求,此时Actions就类似于Mutations,但是它是用来代替Mutations来进行异步操作的。
(1)组件进行actions提交

this.$store.dispatch('getShopInfo')

(2)actions中进行异步操作

/*
Action:通过操作mutation间接更新state的多个方法的对象
 */
import {
  RECEIVE_INFO,
} from './mutation-types'

// api接口
import {
  reqShopInfo ,
} from '../api'
import mutations from "./mutations";

export default {
  // 异步获取商家信息
  async getShopInfo({commit}) {
    const result = await reqShopInfo()//请求数据
    if (result.code==0) {
      const info = result.data
      commit(RECEIVE_INFO,{info})
    }
  }
}

3.7 getters

在这里插入图片描述

3.8 在我们创建并写好state、mutations、action、getters、mutation-types后,将对应的JS文件导入到接口文件中
3.9 注意:我们修改state中的对象一定是通过提交mutation的方式进行的,这是因为Vuex可以更加明确的追踪状态的变化,所以不要在除mutations之外的其他地方修改state中的对象的值
【vuex】一.vue.js的基本指令;二.vue.js全家桶开发;三.vuex 【vuex】一.vue.js的基本指令;二.vue.js全家桶开发;三.vuex 阅读详情

相关推荐

vue全家桶项目

vue全家桶前端项目+element-ui+axios+vuex+vue-router

入门:Vue全家桶都有谁,分别肩负什么责任?

当使用Vue.js开发项目时,通常会使用Vue全家桶来提供完整的开发工具和功能。

贝格前端工场的博客 411

Vc出现不能连接到一个或多个 vCenter server 系统:http://vcenter-vx.utibet.edu.cn:443/sdk

问题描述: 解决办法: esxi6.7的bug 第一种通过升级系统来解决问题 第二种是通过删除数据来解决 第一步:进入到esxi的shell 第二步查看其中的服务开启状态 第二步 df -h 第三步 /opt/vmware/vpostgres/current/bin/psql -d VCDB -U postgres 第四步 SELECT nspname || '.' || relname AS "relation", pg_size_pretty(pg_total_relation_size(C.oi

m0_49328536的博客 9900

Vue全家桶 Vuex的详细介绍

在开发中,我们会的应用程序需要处理各种各样的数据,这些数据需要保存在我们应用程序中的某一个位置,对于这些数据的管理我们就称之为是 。在前面我们是如何管理自己的状态呢?由于JavaScript开发的应用程序,已经变得越来越复杂了当我们的应用遇到多个组件共享状态时,单向数据流的简洁性很容易被破坏:我们是否可以通过组件数据的传递来完成呢?管理不断变化的state本身是非常困难的:因此,我们是否可以考虑将组件的内部状态抽离出来,以一个全局单例的方式来管理呢?这就是Vuex背后的基本思想,它借鉴了Flux、Redux

m0_71485750的博客 1546

利用ANSYS随机振动分析功能实现随机疲劳分析

本文介绍了ANSYS随机振动分析功能,以及利用该功能,按照Steinberg提出的基于高斯分布和Miner线性累计损伤定律的三区间法进行ANSYS随机疲劳计算的具体过程。在工程应用中,汽车、飞行器、船舶以及其它各种机械或零部件,大多是在随机载荷作用下工作,当它们承受的应力水平较高,工作达到一定时间后,经常会突然发生随机疲劳破坏,往往造成灾难性的后果。因此,预测结构或零部件的随机疲劳寿命是非常有必要的。在工程界,疲劳计算广泛采用名义应力法,即以S-N曲线为依据进行寿命估算的方法,可以直接得到总寿命。

qq_38220914的博客 7611

Harness设计——Anthropic实战:规划器、生成器、评估器三角色协作详解

本文探讨了如何通过多智能体架构突破AI编码的瓶颈问题。文章首先分析了当前AI编码面临的两大核心挑战:上下文窗口限制导致的连贯性丧失,以及自我评估机制缺失引发的质量判断偏差。针对这些问题,作者提出了基于生成对抗网络(GAN)灵感的解决方案,设计了三智能体系统:规划器负责需求分析,生成器执行编码任务,评估器进行质量审查。 实验表明,在前端设计任务中,通过制定可量化的评分标准(设计质量、原创性、工艺、功能性)并建立生成-评估反馈循环,能显著提升输出质量。这种架构随后被扩展到全栈开发领域,采用类似敏捷开发的&quo

oe1019的专栏 867

Vuejs全家桶系列 --- Vuex

简介 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 简单来说,用来集中管理数据,类似于React中的Redux,都是基于Flux的前端状态管理框架 基本用法 以官方例子为例: 当点击+1按钮的时候,count 加1,点击-1按钮的时候,count 减1

帕尼尼的博客 1469

中文文本纠错实战:pycorrector与kenlm的安装与高效使用指南

本文提供了一份详细的中文文本纠错实战指南,重点介绍了pycorrector与kenlm的安装与高效使用方法。内容涵盖从编译环境准备、依赖安装到核心参数调优、批量处理及领域自适应等全流程,旨在帮助开发者快速部署并优化纠错系统,提升中文文本处理的质量与效率。

weixin_29055699的博客 411

【Vue】全家桶介绍

Vue全家桶一般来说包括主体Vue.Js、开发插件vue-devtools、项目构建工具vue-cli、路由管理器vue-Router、状态管理模式vuex、网络请求库Axios、ui框架、打包工具webpack

欢迎指错||纠正||建议||水评+点赞&&评论&&关注&&转发 5452

第8讲:基于CST PCB Studio的电源完整性仿真(IR Drop + PDN)

本文系统介绍了电源完整性(PI)仿真的两大核心模块:直流IRDrop仿真与交流PDN阻抗仿真。文章详细阐述了两种仿真的原理、算法(PEEC和3DFE-FD)及完整操作流程,包括参数配置、软件实操步骤和常见问题解决方案。IRDrop仿真用于分析直流供电压降问题,PDN仿真则针对高频电源噪声和谐振问题。文中还提供了优化建议和故障排查方法,如调整铜箔厚度、优化电容布局等,为高速数字系统的电源完整性设计提供了全面的技术指导。(149字)

一只豌豆象的博客 239

微信公众号网页H5跳转小程序实战指南(开放标签wx-open-launch-weapp)微信H5跳转小程序、wx-open-launch-weapp、小程序跳转按钮、微信开放标签、H5打开小程序

跳转小程序(wx-open-launch-weapp)唤起App显示支付按钮等等……而我们这次要用的,就是跳转小程序的标签。场景是否支持服务号网页✅ 支持小程序静态网页托管✅ 支持订阅号❌ 不支持微信外部浏览器❌ 不支持这个“开放标签”功能其实很强大,除了跳转小程序,还有唤起APP、跳支付、调用客服等能力。但可惜资料零散,很多坑等着你亲自踩一遍。这篇文章我整理的流程基本涵盖了从“能不能跳”到“怎么跳”的完整路径,希望你能像我一样省下几个小时的踩坑时间。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1163

Vue的全家桶 --- Vuex

v-bind 属性绑定v-on 事件绑定EventBus$on 接收数据的那个组件$emit 发送数据的那个组件StateMutationActionGetter。

认真学习前端的博客 295

IGCT 测试原理概述

IGCT(Integrated Gate-Commutated Thyristor,集成门极换流晶闸管)是一种高功率半导体器件,基于门极可关断晶闸管(GTO)的原理,但通过集成门极驱动单元和优化结构(如硬驱动技术),实现了更低的导通损耗、更快的开关速度和更高的可靠性。它适用于中高压大功率应用,如高压直流输电(HVDC)、中压变频器和模块化多电平变换器(MMC)。IGCT 的结构为四层 p-n-p-n 器件,门极电流控制导通和关断,阳极电流在关断时快速换流至门极,通常在 1 μs 内完成。

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 236

Vue全家桶之VueX(六)

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

Augenstern_QXL的博客 1648

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Vue全家桶(Vue+Vue-router+Vuex+axios)

Vue全家桶(Vue+Vue-router+Vuex+axios) 1.Vue,用Vue脚手架工具vue-cli搭建了Vue项目; 2.Vue-router,Vue的路由, 路由在全家桶里面定位是什么呢,创建单页应用!简单!我们知道Vuejs是一系列的组件组成应用,既然是组件那么就需要组合起来,将组件(components)映射到路由(routes),然后告诉 vue-router 在哪里渲染它们...

weixin_44345448的博客 407

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

vue全家桶(vue-cli, vue-router, axios, vuex)

vue全家桶包括(vue,vue-cli, vue-router, axios, vuex) 一、Vue 前两篇已经用vue-cli和vue/cli搭建了Vue项目,此处就不赘述了。 二、Vue-router Vue的路由,先献上文档(https://router.vuejs.org/zh-cn/)。 路由在全家桶里面定位是什么呢,创建单页应用!简单!我们知道Vuejs是一系列的组件组成应用,既然...

獨孤殤的博客 1672

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

深入探讨 Vue.js 全家桶:Vue CLI、Vue Router 与 Vuex

Vue CLI 是一个标准化的工具链,旨在为 Vue.js 项目提供开箱即用的配置和构建设置。通过 Vue CLI,我们可以轻松地创建新项目、集成插件、定制项目配置,而无需从零开始配置 Webpack 或其他构建工具。Vue CLI 的强大之处在于其高度可配置性。项目创建后,Vue CLI 会生成一个文件,你可以在其中覆盖默认的 Webpack 配置,添加自定义 Loader、Alias、环境变量等。

Hellc007的博客 1718

vuejs全家桶之vuex

什么是vuex? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。 总结一下上面官方给出的解释: 注意1: vuex 只能在v...

RyleeLouth的博客 332

【Vue全家桶】Vuex状态管理

在开发中,我们会的应用程序需要处理各种各样的数据,这些 数据需要保存在我们应用程序中的某一个位置,对于这些数据 的管理我们就称之为是状态管理Vuex 的状态管理的基本实现(这里采用官方的图解)...

贤蛋大眼萌 3814

Vue全家桶- Vuex

Vue全家桶- VuexVuex概述组件之间共享数据的方式Vuex 是什么使用 Vuex 统一管理状态的好处什么样的数据适合存储到Vuex中Vuex的基本使用Vuex的核心概念核心概念概述 Vuex概述 组件之间共享数据的方式 只适合在小范围内数据共享 父向子传值:v-bind属性绑定 子向父传值:v-on 事件绑定 兄弟组件之间共享数据:EventBus ●on接收数据的那个组件●on 接收数据...

liuziming112的博客 439

已构建配置好的vuejs全家桶项目已包含vue-router vuex api,axios. webpack, 储存vue-ls, 异步async/await, css less. 下载即使用项目开发

github 地址: https://github.com/liangfengbo/vue-cli-project 点击进入 vue-cli-project 已构建配置好的vuejs全家桶项目,统一管理后端接口 | 获取数据 | 请求数据,已包含vue-router,vuex,api,axios. webpack, 储存用vue-ls, 异步async/await, css less. 下...

Github.com/liangfengbo 4219

vue全家桶之vuex

vue全家桶之vuex 在vue中各组件的传值有很多种方式,父子间传值,兄弟之间的传值等,在嵌套关系很深的情况下我们还可以用bus总线传值,但是这些都会显得太过复杂 在vue中我们可以使用vuex来保存我们需要管理的状态值,值一旦被修改,所有引用该值的地方就会自动更新 vuex 是一个专门为vue.js应用程序开发的状态管理模式。 这个状态我们可以理解为在data中的属性,需要共享给其他组件使用...

qq_40152981的博客 278

Vue+vuex+vue-router+sass+webpack+mint-ui 全家桶 开发商城(购物车)

先上截图,项目跑起来就是这个样子,是不是符合你的购物车?哈哈哈哈哈哈哈,我就知道购物车实现的功能:添加购物车、选择某商家下所有商品、选择指定商品、更新指定商品数量(加减)、删除指定商品、全选商品、清空购物车,等功能;准备工作:使用Vue全家桶(vue2.0+vue-router+vuex+webpack+sass+mint-ui),由于都是静态数据,就没有使用axios;注:通常使用npm安装会出...

麻球科技 4494

Vue全家桶之Vuex20

Vuex认识VuexVuex与vue.prototype的区别状态管理单页面状态管理多界面状态管理Vuex状态管理Vuex核心概念StateGetters参数Mutation传递参数:提交风格响应规则类型常量同步函数Action基本使用Module局部状态Vuex的基本使用初始代码state的使用获取state对象获取state中的某数据getters的使用只有参数state参数state、gettersmutations的使用只有参数state参数state、payload使用常量替代 Mutation

钢铁直女 1424

Vue全家桶(六)之VueX状态管理

✍目录总览: 一、VueX概念 1. VueX的概念 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。 它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 Vuex 的状态存储是响应式的。当 Vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会相应地得到高效更新。 VueX里面所有数据都可以全局使用。 2. 状态管理的概念 可以简单的将其看成把需要多个组件共享的变量全部存储在一个对象里面。 将这个对

m0_55990909的博客 1023
上一篇: Promise
下一篇: 前端开发必备的环境配置
7--up
博客等级 码龄6年 5粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值