开始学习Vue2(axios和Vuex)

一、Axios

1、Axios 简介

Axios 是一个基于 promise  网络请求库 ,作用于node.j s 和浏 览器中。它是 isomorphic 的(即同一套代码可以运行在浏览器

和 node.js 中)。在服务端它使用原生  node.js http  模块,  而在

客户端 (浏览端) 则使用 XMLHttpRequests。

2、Axios 的基本语法

开始学习Vue2(axios和Vuex)_第1张图片

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 请求 :

开始学习Vue2(axios和Vuex)_第2张图片发起  POST 请求 :

开始学习Vue2(axios和Vuex)_第3张图片

二、Vuex

1、什么是 vuex

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

开始学习Vue2(axios和Vuex)_第4张图片

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 的方式间接变更数据

开始学习Vue2(axios和Vuex)_第5张图片

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+ ’】’

                    }

       }

})

你可能感兴趣的:(学习)