vuex基本了解

Vuex初识

概念

实现集中式状态管理的插件,是vue团队打造的一种组件间通信的方式### 概念

实现集中式状态管理的插件,是vue团队打造的一种组件间通信的方式

何时使用

当组件之间需要处理相同的状态数据(共享)

工作原理

首先,VueComponents(组件)

调用dispatch('Actions里面的一个同名函数','数据')发出一个操作state里面状态的请求

然后actions找到dispatch传的这个同名函数**(响应)**,调用这个函数,这个函数里面会

调用commit('Mutations里的一个同名函数','数据')进入mutations中找到这个同名函数,

调用这个函数(处理),实现对state状态数据的操作,然后重新解析并render组件

现在可以浅看一下工作原理图,后面有具体实现细节(doge)

搭建vuex环境

在终端输入npm i vuex@3安装vuex插件

vue2支持vuex3,vue3支持vuex4

在脚手架的src文件夹中,新创建一个store文件夹,在此文件夹中创建index.js(推荐)

在index.js中我们导入vuevuex,并应用vuex插件

接着准备actionsmutationsstate配置项

创建并暴露store,将上面三个配置项传到store

然后在srcmain.js中导入store,在vm中配置store

至此,脚手架项目就可以使用vuex插件了

利用vuex实现一个比较基础的数据共享(看图应该就可以理解)

注意点:

1.这个数据3一般从服务器后台获取,一般dispatch这不传参

2.actions里面进行网络请求和业务逻辑设计等(就是工作原理中的Bankend API),不实现具体的数据操作

3.context就是一个mini版store,里面有你要的commit,state等

4.value就是那个数据

5.mutations里的函数里的state就是store的state

如上这些都是vuex已经集成好的

建议点:

1.若数据不需要服务器,并且也不需要什么其他逻辑或者ajax请求

则你可以直接调用commit到mutations里面完成数据的操作,跳过actions

2.actions,mutations里面这个函数名字最好只是大小写之分,后者一般大写(vue官方推荐)

getter配置项

当state里的数据只需要被读取进行加工而不修改时

store配置一个getters,里面写一个函数,返回你要加工后的值

四个map

为了优化代码不必要出现重复,推出四个操作map操作去操作store里的配置项

mapState和mapGetters

第一步,从vuex中导入mapState对象

第二步,在computed里使用...mapState({属性名:'state里的数据',属性名:'state里的数据'})

第三步,插值语法修改

emmmm请自动忽略age,无伤大雅

mapActions和mapMutations

和前俩个map差不多

mapActions可以生成与Actions对应的方法,即包含$store.dispetch()的函数

mapMutations可以生成与mutations对应的方法,既包含$store.commit()的函数

注意点:若需传参,则在模板中绑定事件就传好参数,否则是事件对象event(比如上面的这个increment(1))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vuex是一个专为Vue.js应用程序开发的状态管理模式。它采用集式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 下面是一个基本Vuex应用程序的教程: 首先,你需要安装Vuex,可以通过npm来安装: ``` npm install vuex --save ``` 然后,在你的Vue.js应用程序引入Vuex和创建一个store实例: ``` import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex); const store = new Vuex.Store({ state: { count: 0 }, mutations: { increment(state) { state.count++; }, decrement(state) { state.count--; } }, actions: { increment(context) { context.commit('increment'); }, decrement(context) { context.commit('decrement'); } }, getters: { getCount(state) { return state.count; } } }); export default store; ``` 在store实例state表示应用程序的状态。mutations表示可以修改状态的方法。actions表示可以提交mutation来修改状态的方法。getters表示可以从state派生出一些状态的方法。 在你的Vue.js组件,你可以使用Vuex.store来访问state、mutations、actions和getters: ``` <template> <div> <p>Count: {{ count }}</p> <button @click="increment">+</button> <button @click="decrement">-</button> </div> </template> <script> import { mapGetters, mapActions } from 'vuex'; export default { computed: { ...mapGetters(['getCount']), count() { return this.getCount; } }, methods: { ...mapActions(['increment', 'decrement']) } }; </script> ``` 在这个组件,我们使用了mapGetters和mapActions来映射getters和actions到组件的computed和methods。 以上就是一个基本Vuex应用程序的教程。当然,Vuex的功能远不止于此,你可以在官方文档了解更多。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

编程就是n踢r

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

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

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

打赏作者

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

抵扣说明:

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

余额充值