Vue-actions 跨域

Vuex  actions

actions类似mutations,不同点在于:actions提交的是mutations,而不是直接改变状态。actions可以包含任意的异步操作

actions是处理异步任务的 mutations是处理同步

小案例:每点击一次按钮 怎加服务器服务器数字

node服务:app.js

//引入express
const express = require('express') 
//创建app应用
let app = new express()
//处理get请求
app.get('/add',function(req,res){
    res.send({
        a:10
    })
})
//监听3000端口
app.listen(3000,function(){
    console.log('3000端口')
})

vue main.js

import Vue from 'vue'
import App from './App.vue'

import Vuex from "vuex"
import store from "./store/store.js"
//引入axios
import axios from 'axios'
Vue.prototype.$http = axios

Vue.use(Vuex)
new Vue({
  render: h => h(App),
  store: new Vuex.Store(store)
}).$mount('#app')

app.vue

<template>
  <div>
    <p>{{$store.state.a}}</p>
    <button @click="addServe">点击怎加服务器的数字</button>
  </div>
</template>
<script>
  export default {
    methods:{
      addServe(){
        this.$store.dispatch('addServe')
      }
    }
  }
</script>
<style>
</style>

和mutations不同的是 actions发送的是dispatch请求,dispatch是用来处理异步任务的,commit是处理同步的

store.js

import axios from 'axios'
export default{
    state:{
        a:50
    },
    mutations:{
        add(state,{a}){
            state.a += a
        }
    },
    getters:{
        
    },
    actions:{
        addServe({commit}){
           // console.log(content)
            axios.get('add').then(res => {
                if(res.status == 200){
                    commit('add',{a:res.data.a})
                }
            })
        }
    }
}

actions处理异步任务,处理完之后发送commit请求,mutations进行修改state,不违背state只能是mutations修改的宗旨 

Vue-actions 跨域

上一篇:Vuex的核心概念state


下一篇:vuex使用详解