Vuex理解

在这里插入图片描述
Vuex的作用
在这里插入图片描述
作用就是一个数据仓库
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
**

基本的配置

**
在这里插入图片描述

**

state基本使用(数据)

**
在这里插入图片描述
组件访问数据的方式
在这里插入图片描述
可以再多个组件访问数据
方式一:
在这里插入图片描述
方拾二:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
**

mapState原理

**
在这里插入图片描述

**

组件里面使用$store.state.属性名

在这里插入图片描述
这个bug出现的原因就是,在data里面可能重名.可以设置一个新的名字

...mapState({    "新名字"      :    "原来的名字"     })

Mutation 变异(修改state里面的数据)

**
在这里插入图片描述这样做的结果 数据追踪很困难 特别是大型项目
在这里插入图片描述
mutation这样做的目的是让调试工具 知道每一次修改是哪个修改的

具体使用
在这里插入图片描述
1-在组件里面声明点击事件 调用函数methods
在methods里面
this.$store.commit (“事件函数名”)
在这里插入图片描述
2—返回到配置store的js文件里面 配置mutation

在这里插入图片描述
在这里插入图片描述

**

载荷(payload)

**
就是一种传参数的方式

在这里插入图片描述
在组件的methods里面 添加一个payload的对象 手动的传递参数

在这里插入图片描述
mutations里面接收到的数据就是 两个参数 一个数state 一个是payload对象
在这里插入图片描述
注意 :载荷只有一个 如果要传多个参数 就定义一个对象
在这里插入图片描述
在这里插入图片描述

**

action基本使用(异步操作)

**
在这里插入图片描述
在这里插入图片描述
为什么要将异步操作放在action里面呢?
原因在于 项目很大,不能放在一个小组件里面 这样效果不好
在这里插入图片描述
通过dispatch方式来调用action里面的异步请求,将结果 commit给mutations 这样就是一个同步的请求 再去修改state
在这里插入图片描述
actions函数里面第一个 参数 一定是context
第一步: 定义好actions
在这里插入图片描述
整体思路就是:
异步操作放在里面 参数是context 最终将结果

context.commit("add",payload)    

这样就是将异步请求的结果给了 mutations
在这里插入图片描述
简单来说就是:
点击事件 $store.dispatch(""js文件里面的actions变量名"") 调用actions里面的函数
异步操作的函数体 将结果通过 this.$store.commit(““mutations里面的函数””, payload)
异步请求来修改结果

载荷
在这里插入图片描述
在这里插入图片描述
前面的state context 其实就是帮助 mutations 和actions 来和上一级联系

在这里插入图片描述
在这里插入图片描述
**

getters基本使用

**
在这里插入图片描述
这个出现的原因是: 组件中要使用到计算属性 但是计算属性只能在一个组件里面使用 不能跨组件
这就是getter的由来
在这里插入图片描述
mapGetter辅助函数
在这里插入图片描述
在这里插入图片描述
出现的位置就是在
修改数据 实在计算属性里面
行为就是 在methods里面

在这里插入图片描述
在这里插入图片描述
**

module基本使用(大范围数据共享基础)

**

modules的作用

拆分模块,把复杂的场景按模块来拆开
在这里插入图片描述
在这里插入图片描述
注意: 两种方式 可以设置modules 文件夹 在里面设置模块
这里的

 namespaced:true            就只在使用的时候   前面要加上  模块名  
 namespaced:false           不需要加上模块名

在这里插入图片描述
在引入的子模块里面需要添加的是
state mutations getters actions
这四个

vuex-用modules之后代码结构优化
在这里插入图片描述
这个图的意思是: 在store这个文件夹里面 设置子模块
然后在主模块里面引入子模块文件 同时在modules 里面设置子模块的文件名字

**

在设置完子模块以后 调用的时候就会有一些变化

**
在这里插入图片描述
当前文件显示在子模块里面,
第一步:设置 namespacde:true
第二步: 写出前四个组件 state mutations getters actions
第三步:就是调用 添加模块名字以后,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里做深度监听的目的就是 :
将原始数据存在localstorage里面,关闭网页第二次打开以后 还能看到数据
监听就是动态的将数据存在这里面,
下次开网页就不会报错
设置一个空数组的目的是 标签的v-for循环 可以使用空数组的属性 不至于报错
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vuex是一个专为Vue.js应用程序开发的状态管理模式。它主要用于管理应用程序的状态,其中包括数据的获取、修改和同步,以及在不同组件之间共享数据。 Vuex的核心概念主要有以下四个: 1. State(状态):State是存储应用程序中所有组件共享的数据的地方,可以将它看作是应用程序的单一源 of truth(唯一数据源)。它类似于组件中的data属性,但是可以被多个组件共享。 2. Mutations(变更):Mutations是用来修改State的唯一方式。它们类似于事件,每个Mutation都有一个字符串类型的事件类型和一个回调函数。在回调函数中,我们可以对State进行修改。Mutations只能进行同步操作。 3. Actions(动作):Actions用于异步修改或触发Mutations。它们类似于Mutations,但是可以执行异步操作,并且可以包含任意的业务逻辑。Actions通过提交Mutations来间接修改State。 4. Getters(获取器):Getters用于从Store中获取State的派生状态,类似于计算属性。它们可以接收State作为第一个参数,并且可以接收其他Getters作为第二个参数,从而实现对State的复杂统计或过滤。 Vuex的使用步骤如下: 1. 安装Vuex:在Vue项目中使用npm或者yarn安装Vuex。 2. 创建一个Store:通过创建一个Store实例来管理应用程序的状态。在Store中定义State、Mutations、Actions和Getters。 3. 在Vue组件中使用State:通过this.$store.state来访问State中的数据。 4. 在Vue组件中使用Mutations:通过commit方法来触发Mutations中的回调函数,从而修改State。 5. 在Vue组件中使用Actions:通过dispatch方法来触发Actions中的回调函数,从而间接修改State。 6. 在Vue组件中使用Getters:通过this.$store.getters来访问Getters中的派生状态。 通过合理使用Vuex,我们可以更好地管理Vue.js应用程序的状态,并且实现组件间的数据共享和通信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值