vue-x和axios的学习

时间:2022-08-30 13:14:02

axios的使用

使用原因:因为vue本身就带有处理dom的功能,不希望再有其他操作dom的插件,所以用axios代替了jquery

功能:发送xhr请求

下载: $ npm install axios

使用:将axios挂载到vue的原型上,那么在各个组件中都能使用,因为面向对象(继承)

Vue.prototype.$requests = Axios  //取名尽量见名知意

基本使用

axios.get('/user?ID=12345')
.then(function (response) {
// handle success
console.log(response);
})
.catch(function (error) {
// handle error
console.log(error);
})

文档链接:https://www.kancloud.cn/yunye/axios/234845

vue-x

下载:npm i vue-x -S

工作流程

vue-x更方便的为我们提供数据的更改和获取

vue-x和axios的学习

  • State定义内部数据
  • Action 提交的是 mutation,而不是直接变更状态,可以包含任意异步操作
  • Mutations必须是同步函数,action提交过来的数据可直接在内部进行修改
  • 大致流程:vue-component通过dispatch到actions再commit提交到mutations,mutations内部进行数据更改
  • 其他组件要获取state中的数据,直接通过computed监听数据

使用

// main.js
import Vuex from 'vuex'
Vue.use(Vuex) //如果是模块化使用,则必须use const store = new Vuex.Store({
state:{
xxx:null
},
actions:{
action(context,data){
context.commit('mutation',data)
}
},
mutations:{
mutation(state,data){
state.xxx = data //最终是在mutations中变更数据
}
}
}) new Vue({
store //挂载到vue实例
}) // 其他组件
created(){
this.$store.dispatch('action',value)
}
computed:{
courseDetail() {
return this.$store.state.datail
}
}