1. vuex与全局对象的区别

每一个 Vuex 应用的核心就是 store(仓库)。“store”基本上就是一个容器,它包含着你的应用中大部分的**状态 (state)**。Vuex 和单纯的全局对象有以下两点不同:

  1. Vuex 的状态存储是****响应式****的。当 Vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会相应地得到高效更新。
  2. 你不能直接改变 store 中的状态。****改变 store 中的状态的唯一途径就是显式地提交 (commit) mutation*。这样使得我们可以方便地跟踪每一个状态的变化*,从而让我们能够实现一些工具帮助我们更好地了解我们的应用
  1. vuex用于做状态管理,主要是应用于vue.js中管理数据状态的一个库,通过创建一个集中的数据存储,供程序中所有组件访问,实现组件之间的传值。并且一个组件的数据变化会映射到使用这个数据的其他组件。

  2. vuex由统一的方法修改数据,全局变量可以任意修改。

  3. 全局变量多了会造成命名污染,vuex不会,同时解决了父组件与孙组件,以及兄弟组件之间通信的问题。

2. vue定义全局变量

方法一:新建全局【global.js】文件,并在其中定义变量并导出,在使用的组件中引入该【global.js】文件,可为全局变量赋值(任意修改)或使用其值。

方法二:在【main.js】中引入【global.js】:import global from "../api/global.js";,并通过Vue.prototype.global=global挂载到vue实例上,在其他组件中通过this.global.authorization调用。

3. vue定义全局方法

直接将方法写在【main.js】中,在组件中通过this.方法名 调用。