1. vuex与全局对象的区别
每一个 Vuex 应用的核心就是 store(仓库)。“store”基本上就是一个容器,它包含着你的应用中大部分的**状态 (state)**。Vuex 和单纯的全局对象有以下两点不同:
- Vuex 的状态存储是****响应式****的。当 Vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会相应地得到高效更新。
- 你不能直接改变 store 中的状态。****改变 store 中的状态的唯一途径就是显式地提交 (commit) mutation*。这样使得我们可以方便地跟踪每一个状态的变化*,从而让我们能够实现一些工具帮助我们更好地了解我们的应用
vuex用于做状态管理,主要是应用于vue.js中管理数据状态的一个库,通过创建一个集中的数据存储,供程序中所有组件访问,实现组件之间的传值。并且一个组件的数据变化会映射到使用这个数据的其他组件。
vuex由统一的方法修改数据,全局变量可以任意修改。
全局变量多了会造成命名污染,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.方法名 调用。