一、Axios
1、Axios 简介
Axios 是一个基于 promise 网络请求库 ,作用于node.j s 和浏 览器中。它是 isomorphic 的(即同一套代码可以运行在浏览器
和 node.js 中)。在服务端它使用原生 node.js http 模块, 而在
客户端 (浏览端) 则使用 XMLHttpRequests。
2、Axios 的基本语法
3、使用 axios
1.axios 必须先下载、
npm i axios
2.引入(main.js 文件中引入)
import axios from "axios "
Vue.prototype.$http=axios ;
3.使用
this.$http.get("url").then (response=>{
console.log (response.data)
})
4、结合 async 和 await 调用 axios
² 发起 GET 请求 :
发起 POST 请求 :
二、Vuex
1、什么是 vuex
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 + 库。它采 用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
2、vuex 的好处
² 能够在 vuex 中,集中管理共享的数据,易于开发和后期维护;
² Vuex 的状态存储是响应式的,当 Vue 组件从 store 中读取状的时候,若 store 中的状态发生变化,能够触发响应式的渲染页面更新 (localStorage 就不会),那么相应的组件也会相应地得到高效更新。
js 原生的数据对象写法, 比起 localStorage 不需要做转换,使用方便
限定了一种可预测的方式改变数据, 避免大项目中, 数据不小心的污染
3、什么情况下我应该使用 Vuex?
如果您不打算开发大型单页应用,使用 Vuex 可能是繁琐冗余的。确
实是如此------如果您的应用够简单,您最好不要使用 Vuex。一个简
单的 store 模式就足够您所需了。但是,如果您需要构建一个中大
型单页应用,您很可能会考虑如何更好地在组件外部管理状态,Vuex
将会成为自然而然的选择。
4、Vuex 的基本使用
1 安装 vuex 依赖包
npm install vuex--save
2 导入 vuex 包
import Vuex from 'vuex '
Vue.use(Vuex)
3 创建 store 对象
const store =new vuex.store({
//state 中存放的就是全局共享的数据
state: {count:0}
})
4 将 store 对象挂载到 vue 实例中
new Vue({
el: "#app ",
render: h => h(app),
router,
//将创建的共享数据对象,挂载到 vue 实例中
//所有的组件,就可以从 store 中获取全局数据
store
})
5、vuex 中的核心概念
State
state 提供唯一的公共数据源,所有共享数据都要统一放到 store 的state 中进行存储
const store = new Vuex.Store({
state: { count:0 }
})
this.$store.state.全局数据名称
Mutation
通过 mutation 修改 store 中的数据
1 只能通过 mutation 变更 store 数据,不可以直接操作 store中的数据
2 通过这种方式虽然操作繁琐,但可以集中监控所有数据变化
//定义 Mutations
const store=new Vuex.Store({
state: { count:0 },
Mutations: {
//变更状态
state.count++
}
}
})
//触发 mutation
Methods: {
Handlel(){
this.$store.commit('add ')
}
}
注:在 mutation 中不能写异步代码
> Action
Action 用于处理异步任务
如果通过异步操作变更数据,必须通过 Action,而不能使用 mutation,
但是在 action 中还是通过触发 mutation 的方式间接变更数据
setTimeout(() =>{
context.commit('add ')
},1000)
}
})
//触发 action
Methods: {
Handle(){
This.$store.dispatch('addAsync ')
}
}
Getter
Gettr t 用于对 store 中的数据进行加工处理形成新的数据
1 Getter 可以对 store 中已有数据加工处理后形成新的数据,类似Vue 的计算属性
2 Store 中数据发生变化,Getter 的数据也会跟着变化
//定义 Getter
Const store =new Vuex.store({
State: {count:0},
Getter: {
showNum:state =>{
Return '当前最新的数据是【'+state.count+ '】'
}
}
})