Vue2渐进式框架(七)Vuex

Vuex知识点梳理 Vuex 1.概念 ​ 在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信。 2.何时使用? ​ 多个组件需要共享数据时 3.搭建vuex环境 创建文件:src/store/index.js //引入Vue核心库 import Vue from 'vue' //引入Vuex import Vuex from 'vuex' //应用Vuex插件 Vue.use(Vuex) //准备acti 阅读详情

第十九节

一、Vuex

1.1Vuex是什么?

Vuex是实现组件全局状态(数据)管理的一种机制,可以方便实现组件之间的数据共享;

1.2状态管理?

状态: 就是Vue组件中data里面的属性,我们也将叫做数据。
管理: 就是对于项目中数据的操作管理。

1.3管理什么状态呢?

用户的登录状态、地理位置信息、商品的收藏、购物车的物品;

二、单界面状态管理

在这里插入图片描述

2.1具体实现

在这里插入图片描述

三、多界面状态管理

当我们的应用遇到多个组件共享状态的时候,单向数据流的简洁性很容易被破坏;
多个视图依赖于同一状态。
来自不同视图的行为需要变更同一状态。
在这里插入图片描述

3.1安装Vuex

新建store文件夹===>index.js

//1.引入Vue
import Vue from 'vue';
import Vuex from 'vuex';
//2.安装
Vue.use(Vuex);
const store = new Vuex.Store({
    //存储状态
    state:{
        //自定义共享状态
        count:0,
    },
    // Vuex中的Store状态(state)更新的唯一方式:提交Mutation
    mutations:{//定义mutations
        add(state){ //第一个参数就是state
			// this是store对象
			// console.log(this)
			state.count++
		},
    }
})
//导出
export default store

3.2main.js

来到main.js中,导入store对象,并且放在new Vue中
就可以通过this.$store的方式获取到这个store对象

3.3使用vuex中count(state中定义的共享状态)

this.$store.state.count
不能直接修改store中的状态,直接修改devtools侦听不到数据的修改。

3.4mutations 负责同步修改状态

Vuex的store修改状态唯一的方式:提交mutations
mutations:{ //定义mutations
	add(state){ //第一个参数就是state
		// this是store对象
		// console.log(this)
		
		state.count++
	}
}
在组件中进行提交mutations
  this.$store.commit("add")

四、mutation的提交方式与mutation的携带参数

在这里插入图片描述

第二十节

一、state

state属性是vuex管理的状态对象,里面会包含一些具体的状态,也即通用的数据;

二、Mutation

更改Vuex的store中的状态的唯一方法是提交mutation;
在这里插入图片描述

2.1Mutation携带参数

你可以向store.commit传入额外的参数,即mutation的载荷payload;
在这里插入图片描述

2.2Mutation提交风格

在这里插入图片描述

2.3Mutation注意事项

既然Vuex的store中的状态是响应式的,那么当我们变更状态时,监视状态的Vue组件也会自动更新。这也意味着Vuex需要遵守一些注意事项:
(1)最好提前在你的store中初始化好所有所需属性;
(2)当需要在对象上添加新属性时,你应该使用Vue.set(obj,‘newProp’,123)或者
在这里插入图片描述

三、Actions

Action类似于Mutation,不同的是:
1、Action提交的是mutation,而不是直接变更状态;
2、Action可以包含任意异步操作。在Vuex的使用过程中,我们可以将多个Mutation合并到一个Action中,也可以通过Action进行异步操作;

3.1actions基础用法

Action函数接收一个与store实例具有相同方法和属性的context对象,因此你可以调用context.commit提交一个mutation,或者通过context.state和context.getters来获取state和getters.Actions通过store.dispatch方法触发;
在这里插入图片描述

3.2携带参数与提交方式

Actions支持同样的载荷方式和对象方法进行分拨:
在这里插入图片描述

四、getters

4.1Getters Store中的计算属性

  // 计算count的平方
  quadratic(state){
	// 第一个参数,状态state
	return state.count*state.count
  },

4.2筛选数据

//筛选数据
    filterInfo(state){
      //age返回的不是一个不确定的值,而是一个函数
      return (age) => {
        return state.info.filter(res => res.age > age)
      }    
    },

4.3获取数据

在这里插入图片描述

4.4getters中的两个参数

在这里插入图片描述

第二十一节

一、Vuex辅助函数

vuex提供了四个铺筑函数,分别是mapState、mapGetters、mapMutations、mapActions.在Vuex中获取数据的辅助函数有两个mapState、mapGetters,操作Mutation和actionhas函数mapMutations、mapActions.

1.1mapState

首先引入 import {mapState} from 'vuex'

(一)普通使用

computed:mapState([//普通使用
   //属性名与vuex状态名相同 可使用数组的形式写
    "count",//将vuex中状态count映射到计算属性中(this.$store.count)
    "user"
])

(二)对象的形式使用

   //以对象的形式使用
   // computed:mapState({
   //     cuser(state){
   //         //通过计算属性的第一个函数 是vuex中的状态state,所以可以通过state直接获取数据
   //         return state.user
   //     },
   //     //简写方式
   //     csuser:state => state.user,
   //     cnum:"count"
   // })
   computed:{
       //组件自己的计算属性
       cPrice(){
           return "$" + this.price
       },
       //使用对象展开运算符...解构
       ...mapState({
           cuser(state){
               //通过计算属性的第一个函数 是vuex中的状态state,所以可以通过state直接获取数据
               return state.user
           },
           //简写方式
           csuser:state => state.user,
           cnum:"count"
       })
   }

1.2mapGetters

mapGetters辅助函数仅仅是将store中的getter映射到局部计算属性
在这里插入图片描述

1.3mapMutations

mapMutations其实跟mapState、mapGetters的作用是类似的,将组件中的methods映射到store.commit调用
在这里插入图片描述

1.4mapActions

你在组件中使用this.$store.dispatch(‘xxx’)分发ation,或者使用mapActions辅助函数将组件的methods映射为store.dispatch调用

在这里插入图片描述

二、Modules

在这里插入图片描述
上一节: Vue2渐进式框架(六)Axios专题、服务器搭建
下一节: 敬请期待

vue2+vuex+vue-router 快速入门(一) 简单介绍 vue2  vue 官方解释为一套构建用户界面的渐进式框架。而我的理解 vue 是一套以视图为核心、数据为驱动的组件化开发框架。使用过模板引擎的同学都知道:只要我们把数据传入已经编译好的模板中,便能渲染出我们想要的视图。// 伪码 import engine from TMplateEngine import template from 'somewhere'let data = {...} 阅读详情

相关推荐

JavaScript进阶教程 - Vue(Composition API、Vuex)

Vue 的 Composition API 提供了一种更灵活的方式来组织和重用组件逻辑,特别适用于复杂组件和 TypeScript。Vuex 作为 Vue 的官方状态管理库,通过集中式存储管理应用的所有组件的状态,使得状态的变化更加可预测和可追踪,适用于大型 Vue 应用。这些工具和概念结合起来,为 Vue 开发者提供了强大的手段来构建和管理现代 Web 应用的 UI 和状态。

r081r096的博客 1914

vue 请求数据头部传入token值

需求:点击退出的发送请求的时候后台要求传Headers中传入token 代码如下: // 第一个{}为所传的data数据,第二个{}为传入headers this.axios.post('/admin/logout',{},{ headers:{ //我这里对像值这么写是因为我在上页面计算属性中获取了usr,user:state=>state.user.user toke...

周家大小姐 3625

WinForm布局

登录模板页面UILoginForm

m0_71541781的博客 470

userSession: state => state.user.userSession和getters

userSession: state => { return state.user.userSession; }, 等价于 userSession: state => state.user.userSession, const store = new Vuex.Store({ modules: { }, getters }) getters.js ...

飞翔的熊blabla 1355

Unity新手必看:5分钟搞定TextMeshPro中文乱码,告别小方块(附7000+常用字库)

本文详细介绍了Unity中TextMeshPro中文乱码问题的解决方案,包括快速生成中文字体的步骤和优化技巧。通过使用支持中文的.ttf字体文件和自定义字符集,开发者可以在5分钟内解决TMP显示小方块的问题,提升游戏或应用的文本显示效果。

weixin_33095355的博客 362

在Keil下完成一个汇编程序的编写

在学习STM32的路上开始是学的C语言尚未进行对汇编进行学习,因此抽出时间来学习一下在keil下的汇编语言。

Liu-FE的博客 1万+

Vuex详解,一文彻底搞懂Vuex

其中参数state参数是必须的,也可以自己传递一个参数,如下代码,进行计数器的加减操作,加法操作时可以根据所传递参数大小进行相加,减法操作没有传参每次减一。

m0_67401746的博客 3159

电机控制——PMSM无感FOC控制(一)FOC入门

FOC 是一种电机控制技术,全称为 Field Oriented Control(磁场定向控制),也称作矢量控制。该技术可以提高电机的效率、控制稳定性和精度,广泛应用于电机驱动系统中,是目前无刷直流电机(BLDC)、永磁同步电机(PMSM)、感应电机的高效控制的最优方法之一。本节主要讲了FOC的大致流程,带大家先了解FOC到底是个什么东西在做什么,各个模块具体的原理会放到后面的章节详细讲解。FOC其实就是通过控制,相电流按照正弦变化,从而产生出旋转的磁场,控制电机转子转动。

zhuxinmingde的博客 2625

vuex简单应用----点击登录将user用户名传递给另一个页面

1、login.vue <button class="content-footer" @click="showState(user)" >登录</button> //user的传值 showState (user) { if (!this.user || !this.password) { this.alert = !this.alert thi...

weixin_41111987的博客 4430

全网最详细的 Ubuntu 18.04 安装Livox mid-360驱动,测试 fast_lio2

Livox mid-360需要使用Livox-SDK2,而非Livox-SDK,以及对应的。并需要修改FAST_LIO中部分代码。Faster—LIO;Faster-LIO:快速激光IMU里程计。Faster-LIO:快速激光IMU里程计PDF。大部分Lidar SLAM都是基于loam进行改造的,基本上是通过线特征edge和面特征(面点)分割进行配准得到里程计的,而fast-lio2是通过一个迭代扩展卡尔曼滤波器去优化帧内位姿,然后通过输入点云与地图进行配准得到里程计,精度和鲁棒性都不错。

努力努力努力 6238

YOLOv11改进 - C3k2融合 | C3k2 融合 ARConv 自适应矩形卷积:动态调整卷积核形状与采样点

本文介绍了将自适应矩形卷积(ARConv)模块与YOLOv11相结合的方法。ARConv是针对遥感图像全色锐化任务设计的创新卷积模块,可自适应调整卷积核形状与采样点数量,解决传统卷积刚性限制,实现高效特征提取。其工作流程包括学习卷积核高度和宽度、选择采样点数量、生成采样图、卷积实现与空间自适应增强。我们将集成ARConv的C3k2_ARConv模块引入YOLOv11,对相关代码进行修改和注册,并配置了yolov11 - C3k2_ARConv.yaml文件。实验脚本显示,该结合方式应用于目标检测任务。

魔改工程师的博客 1005

Vue 2 中文文档完全指南:从零开始学习渐进式JavaScript框架

🚀 **Vue 2 中文文档**是学习渐进式JavaScript框架的最佳起点!无论你是前端新手还是有经验的开发者,这份完整指南将帮助你快速掌握Vue 2的核心概念和实用技巧。Vue.js作为一款流行的前端框架,以其简洁的API、灵活的组件系统和出色的性能赢得了全球开发者的青睐。 ## 📚 为什么选择Vue 2中文文档? Vue 2中文文档为中文开发者提供了原汁原味的学习体验,消除了语言障

gitblog_00429的博客 1005

EndNote导入文献出现带有大括号{}乱码的解决办法

进入word中的Endnote工具栏——Bibliography Preferences(位于Bibliography区块的右下角),就是那个输入杂志名的小三角形,在Temporary citation delimiters处修改变量的默认符号。将默认的大括号{}修改为文章中不回使用到的符号。原因:因为Endnote插入的参考文献在Word中的代码就是以大括号隔开的,当文章中出现了该符号,endnote就会自动比对Library中的书目,而此时endnote出现错误。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 4万+

渐进式框架Vue

渐进式框架Vue 1. 什么是vue? 类似于一套构建用户界面的渐进式框架。与其他重量级框架不同,Vue采用自底向上增量开发设计。 渐进式:就是阶梯式向前,vue是轻量级的,它有很多独立的功能或库,我们会根据我们的项目来选用vue的一些功能,我们开发项目时,只用到vue的声明式渲染,我就只用vue的声明渲染,而我们要用它的组件系统,我们可以使用它的组件系统。 Vue的渐进式表现: 声明式渲染----组件系统-----客户端路由------大数据装填管理-------构建工具 2. vue中两个核心点 响应

weixin_46692492的博客 3560

图像处理入门007:图像处理中的数学基础:线性代数与卷积

一种:把 OpenCV 当黑盒,调用,效果不对就乱调参数;另一种:理解每个像素是怎么被周围邻域"加权平均"的,理解核翻转、边界填充、stride 的含义。前者能干活,后者能解难题。一旦遇到自定义核(比如 ISP 上的锐化)、深度学习反向传播、医学图像重建,你就必须把卷积、相关、矩阵乘法这些基本功捡回来。线性代数三件套:向量点积、矩阵乘法、线性变换;2D 卷积的数学定义:核翻转、滑动窗口、边界填充。并手写一个,验证它与和的结果完全一致(误差 < 1e-9)。f∗gn∑m−∞∞f。

专注:太空算力、AI infra、异构调度、大模型成本工程 387

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Vue | 如何理解Vue是一个渐进式的Javascript框架

Vue.js是一个渐进式的JavaScript框架,‌这意味着开发者可以根据项目的需求逐步引入和使用框架的各种功能,‌同时保持项目的可维护性和可扩展性。‌

青春木鱼的博客 3468

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Vue和Vuex有什么差别?

Vue.js 是一个完整的前端框架,用于构建和管理 UI 层;而 Vuex 是一个用于状态管理的插件,专注于管理组件间共享的状态。

大剑师兰特的GIS世界 1963

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

【vue2】vue全家桶介绍,学习vue必备

vue全家桶介绍包括vue介绍、vue-cli、vue-router、vuex、axios、UI框架

嗨,朋友你好!我是前端领域的工作者 6198

Vue基础——VueJS是什么、Vue的优缺点、vue2和vue3的模板区别、MVVM数据双向绑定、Vue的安装和使用、Vue模板语法-文本渲染、常用的vue的指令

Vue基础——VueJS是什么、Vue的优缺点、vue2和vue3的模板区别、MVVM数据双向绑定、Vue的安装和使用、Vue模板语法-文本渲染、常用的vue的指令

ranran0306的博客 9712

前端学习之——Vue、Vuex

前言:  前端最流行的三大框架: Angular JS【Google】、React【Facebook】、Vue.js【国产:尤雨溪】 总的来说,它给你提供足够的optional,但并不主张很多required。 渐进式框架的大概意思就是你可以只用我的一部分,而不是用了我这一点就必须用我的所有部分。 一、Vue   1.Vue.js 是什么? Vue (读音 /vjuː/,...

心情舒畅 2828

这是对于Vue是一套渐进式框架的理解

渐进式代表的含义是:没有多做职责之外的事,vue.js只提供了vue-cli生态中最核心的组件系统和双向数据绑定,就好像 vuex、vue-router都属于围绕vue.js开发的库。 示例: 使用Angular,必须接受以下东西: 1、必须使用它的模块机制。 2、必须使用它的依赖注入。 3、必须使用它的特殊形式定义组件(这一点每个视图框架都有,这是难以避免的) 所以Angular是带有比较强的排...

limeng886549的博客 4088

vue-渐进式javascript框架

vue介绍 Vue是一个前端js框架,由尤雨溪开发,是个人项目 目前由饿了么ude团队进行维护 Vue近几年来特别的受关注,三年前的时候angularJS霸占前端JS框架市场很长时间,接着react框架横空出世,因为它有一个特性是虚拟DOM,从性能上碾轧angularJS,这个时候,vue1.0悄悄的问世了,它的优雅,轻便也吸引了一部分用户,开始收到关注,16年中旬,VUE2.0问世,这个时候v...

weixin_46038717的博客 760

Vue.js - 渐进式 JavaScript 框架(1)

Vue.js快速入门(1)

LYQBackup的博客 2077

渐进式框架

渐进式框架 是一种设计理念,指的是框架可以根据项目的需求逐步引入和使用,而不是强制要求开发者一次性采用框架的所有特性。Vue.js 是渐进式框架的典型代表,它的设计目标是通过灵活的架构,让开发者能够根据项目的规模和复杂度逐步采用框架的功能。

weixin_42946131的博客 1061

都23年了你还记得渐进式框架是什么意思吗

渐进式框架是一种能够逐步增强应用功能的框架,它允许开发者在不影响应用性能的情况下,逐步添加新的功能和特性。Vue.js提供了一些基础功能,如数据绑定和组件化,然后可以通过添加插件和库来增强其功能。开发者可以根据需要选择使用Vue.js的不同部分,从而逐步增强应用程序的功能。

qq_43205326的博客 1662
上一篇: Vue2渐进式框架(六)Axios专题【实际开发中如何使用】、服务器搭建
下一篇: 大数据技术原理与应用(一)
智汇风渔AI小白
博客等级 码龄7年 1万+粉丝 179原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智汇风渔AI小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值