Vue中UI组件库之Vuex与虚拟服务器初识

2020-06-16 06:09:53易采站长站整理

另外,通过定义和隔离状态管理中的各种概念并强制遵守一定的规则,我们的代码将会变得更结构化且易维护。

这就是 Vuex 背后的基本思想,借鉴了 Flux、Redux、和 The Elm Architecture。与其他模式不同的是,Vuex 是专门为 Vue.js 设计的状态管理库,以利用 Vue.js 的细粒度数据响应机制来进行高效的状态更新。

之前我们做的日历组件将数据放到了App.vue最大父组件上,并且还有:year、:month、:setYear、:setMonth等一系列的参数传递操作。

但是vuex就是将数据放到了全局store中。

不用vuex也能做项目,只不过数据管理起来很不方便。

四、Vuex4.1 Vuex配置

官网:https://vuex.vuejs.org/zh-cn/

安装vuex:

npm install --save vuex

什么是vuex?

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

简单说:vuex就是一个状态管理容器,说白了就是将数据单独存放出去。

4.2 state(全局仓库)

什么是“状态管理模式”?

每个Vuex应用的核心就是store(仓库)。store就是一个容器,它包含着你项目中大部分的状态 (state)。

Vuex 和单纯的全局对象有以下两点不同:

Vuex的状态存储是响应式的。当 Vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会相应地得到高效更新变化。

你不能直接改变store中的状态。改变store中的状态的唯一途径就是通过commit提交mutation。这样使得我们可以方便地跟踪每一个状态的变化,从而让我们能够实现一些工具帮助我们更好地了解我们的应用。

在main.js创建一个全局仓库(store),让我们从一个简单的Vue计数器开始:


import Vue from 'vue';
import Vuex from 'vuex'; //引入Vuex包
import App from './App.vue';
Vue.use(Vuex); //将vuex安装到vue中

//创建一个仓库,并且存放一些全局数据(存放四大天王选项)
const store = new Vuex.Store({
state : {
a : 100
}
})

new Vue({
el : "#app",
store, //将store注入到全局中
render : (h)=> h(App)
})

Vuex通过store选项,提供了一种机制将状态从根组件“注入”到每一个子组件中(需要调用Vue.use(Vuex))

通过在根实例中注册store选项,该store实例会注入到根组件下的所有子组件中,并且组件能通过this.$store访问。

在App.vue中的生命周期中输出this,能看到vue实例化对象的全局有$store这个对象


<template>
<div>