Vuex的使用及封装

本文详细介绍了Vuex作为Vue状态管理库的应用,包括其安装、封装、注册及使用方法。通过实例展示了如何在组件间共享数据,实现响应式更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.vuex的作用

vuex是vue的一个状态管理库,用于各组件之间进行数据共享,并且这个数据是响应式的,比如说一个组件中将vuex的值加1,另一个组件中显示的这个值会自动变化为加1后的值。所以有个很好的应用实例就是:登录的状态、信息的存储。

2.安装
cnpm install vuex --save
3.封装

新建vuex目录,该目录下新建store.js。

import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

//state在vuex中用于存储数据
var state = {
  count:1
}
//mutations里面放的是方法,方法主要用于改变state里面的数据
var mutations = {
  incCount(){
    ++state.count;
  }
}
//getters的作用和用法类似于vue中的computed
var getters = {
  testNum:(state)=>{
    return state.count*2;
  }
}
//实例化vuxe.store
const store = new Vuex.Store({
  state:state,
  mutations:mutations,
  getters:getters
})
//抛出暴露
export default store;

4.注册

在main.js中全局注册

import store from "./vuex/store";

new Vue({
  el: '#app',
  router:router,//挂载路由
  store:store,//子组件使用this.$store访问(增加的内容)
  render: h => h(App)
})
5.使用

使用state中的数据:

{{this.$store.state.count}}

使用mutations里的方法:

this.$store.commit('incCount');

使用getters中的testNum:

this.$store.getters.testNum;

当state中count的值改变时,testNum的值也自动随着变化,count的两倍。
另外actions感觉没什么用,也用的少,需要的可自行查看官方文档。

结语

以上就是vuex的基本使用。

引用中提到,Vuex可以理解为一个大对象,而内部的方法可以通过外部的变量和方法来改变内部的状态,并返回处理后的状态。因此,可以在Vuex中内部封装方法给Vuex使用。在Vuex的实例中,可以使用mutations来定义内部方法。例如,可以在mutations中定义一个方法来改变state中的数据: ```javascript mutations: { updateData(state, payload) { state.data = payload; } } ``` 在上述代码中,`updateData`方法可以通过`commit`来调用,实现对`state`中数据的更新。在组件中可以通过`this.$store.commit('updateData', newData)`来触发该方法,并传递新的数据作为参数。 另外,在引用中还提到了Vuex中的`actions`,可以用于处理异步操作。可以在`actions`中封装异步请求的方法,并在请求完成后调用`commit`来触发对`state`的更新。 总结来说,可以通过在mutations中定义方法,并在组件中通过commit来调用,实现内部封装方法给Vuex使用。而对于异步操作,可以使用actions来封装异步请求的方法,并在请求完成后调用commit来更新state中的数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [有关vuex 详细使用方法](https://blog.youkuaiyun.com/yhl521112/article/details/119891294)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [Vuex使用方法及调用(详解)](https://blog.youkuaiyun.com/zyq51/article/details/107192281)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值