Vue 状态管理与Vuex

本文介绍了Vuex,它是专为Vue.js应用开发的状态管理模式,采用集中式存储管理组件状态。Vuex可解决跨组件通信问题,统一管理组件状态,使组件使用更高效。还说明了其使用方法,指出适用于大型单页或多人协同开发项目。

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

Vuex 是什么?

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

上面的是官方的说法,有兴趣的可以详细了解下:Vuex

状态管理与使用场景

我们知道Vue中的父子组件或者说跨级和兄弟组件在通信的时候,可以使用bus(中央事件总线)的方法,用来触发和接收事件,进一步起到通信的作用。Vuex解决的问题和 bus类似,它作为Vue的一个组件使用,可以更好的管理和维护整个项目的组件状态。

常规例子

一个组件可以分为数据(model)视图(view),数据更新的时候,视图也会自动更新。在视图中又可以绑定一些事件,它们触发menthods里指定的方法,从而可以改变数据,更新视图。这是组件基本的运行模式,比如:

<template>
    <div>
        {{message}}
        <button @click="handleClick">修改</button>
    </div>
</template>
<script>
    export  default {
        data() {
            return {
                message:"hello world"
            };
        },
        methods: {
            handleClick() {
                this.message = "hello Vue"
            }
        }
    };
</script>

这里的数据message和方法handleClick只有在test.vue组件里可以访问使用,其他的组件无法读取、修改message的状态,但是实际业务中,经常会有跨组件共享数据的需求,所以才设计了Vuex用来统一管理组件状态,使组件的使用更加高效。

Vuex的使用

  • 通过npm安装
npm install --save vuex
  • 在 ``main.js```中,通过Vue.use() 使用Vuex
import Vue from 'vue';
import VueRouter from 'vue-router';
import App from './app.vue';
import Vuex from ‘vuex’
Vue.use(VueRouter);
Vue.use(Vuex)
//路由配置省略
//其他
...
...
const store = new Vuex.Store({
	//vuex配置
});
new Vue({
    el: '#app',
    router: router,
    //使用vuex
    store:store
    render: h => {
        return h(App)
    }
});

因为从仓库store包含了应用的数据(状态)和操作过程。Vuex里的数据都是响应式的,任何组件用同一store的数据的时候,只要store的数据变化,对应的组件数据也会变化,从而达到目的。比如:
实现一个计数器,数据保存在Vuex的num字段内,定义一个数据count,初始值为0:

const store = ({
	num:{
		count:0
	}
});

那么在任何组件内,可以直接通过:

$store.num.count

读取

总结

使用Vuex会有一定的复杂性,他的主要使用场景是大型单页应用或者说是多人协同开发的场景。如果你的项目不是很复杂,或者说希望速度完成,也可以不适用Vuex,选择使用bus方法来实现。这个取决于每个人或者每个团队。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

millet109

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

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

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

打赏作者

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

抵扣说明:

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

余额充值