vuex官方解释
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 + 库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
简单理解
vuex就是把组件共享状态抽取出来以一个全局单例模式管理,把共享的数据函数放进vuex中,任何组件都可以进行使用。
什么时候我们该使用它?
Vuex 可以帮助我们管理共享状态,并附带了更多的概念和框架。这需要对短期和长期效益进行权衡。
如果您不打算开发大型单页应用,使用 Vuex 可能是繁琐冗余的。确实是如此——如果您的应用够简单,您最好不要使用 Vuex。一个简单的 store 模式就足够您所需了。但是,如果您需要构建一个中大型单页应用,您很可能会考虑如何更好地在组件外部管理状态,Vuex 将会成为自然而然的选择。
使用
1、 安装Vex
npm install --save vuex
2、配置Vuex文件
新建文件夹 store 新建文件 index.js ,在index.js文件进行配置vuex文件——相当于数据库,只不过是在前端。所有状态(数据都放在state中)比如:counter就相当于数据库的一个字段,0就是字段值。
import { createStore } from "vuex";
// const store = createStore({
// })
// export default store;
//或者简写如下
export default createStore({
state:{
counter:0
}
})
3、在全局进行引入,在main.js文件添加以下代码,重点是引入和挂载。
import store from './store'
const app = createApp(App);
app.use(store)
app.mount('#app')
4、在组件中读取状态,在任意一个组件页面中使用,都可以获取到存储在state下的值
第一种
<p> counter = {
{$store.state.counter}} </p>
第二种 在任意一个组件页面中使用以下代码,只不过是放在了computed下,computed专门读取vuex的数据。
<template>
<p>{
{ counter }}</p>
</template>
<script>
import { mapState } from "vuex"
export default {
computed:{
//专门读取vuex的数据
//如有多个 则: ...mapState(["counter",“age"])
...mapState(["count