在Vuex中发送ajax请求方法 实现简单注册功能 数据传输

在Vuex中发送ajax请求方法 实现简单注册功能 数据传输

对使用mapActions做个传输记录

1、在子页面中获取到数据

<template>
  <div class="about">
    <h1>登录页面</h1>
    <input type="text" v-model="phone" placeholder="输入电话号码">
    <br>
    <input type="password" v-model="password" placeholder="输入密码">
    <br>
    <button @click="login">点击注册</button>
  </div>
</template>//v-model双向绑定,获得电话号码与密码的值
<script>
import{mapActions,mapMutations}from 'vuex';
export default {
  methods:{...mapActions(['vlogin']),//传入数据保存
  ...mapMutations(['setphone']),//引入保存phone数据方法
  login(){
     this.vlogin({
       phone:this.phone,
       password:this.password
     }).then(()=>{
       alert("注册成功!")
       this.setphone(this.phone);//如果注册成功,将电话号码传输给store仓库
       },(msg=>{
        alert(`注册失败:${msg}`)})
     )
  }},
  data(){
    return{
      phone:'',
      password:''
    }
  },
}
</script>

2、在store中的index.js页面


import Vue from 'vue'
import Vuex from 'vuex'
import axios from "axios"

Vue.use(Vuex)
export default new Vuex.Store({
  state: {
    phone:"",
  },
  mutations: {
    setphone(state,phone){
      state.phone=phone
    },//要在子页面引入,将数据保存到state中
  },
  actions: {
    vlogin(context,form){
      console.log(form)
      return new Promise((resolve,reject)=>{//Promise异步任务执行 抛出错误
        axios.post(//axios的基本操作
          "/user/reg",
          `phone=${form.phone}&password=${form.password}`
        ).then(result=>{
          console.log(result)
          if(result.status>=200 && result.status<300){
            resolve();//抛出正确
          }else{
            reject(result.data);//抛出错误
          }
        })
      })
    }
  },
  modules: {
  }
})

3、在另一个页面中显示内容

<template>
  <div class="home">
    <h1>{{phone}}</h1>
  </div>
</template>
<script>
import{mapState}from "vuex";
export default {
  
  computed:{
    ...mapState(["phone"])//获取到phone的内容
  }
}
</script>

4、我使用vue脚手架自带的http-proxy代理跨域的方法

在根目录中创建vue.config.js文件修改配置

module.exports = {
    devServer: { //再配置一个代理程序: 
      proxy: {
        '/': {
          target: `http://127.0.0.1:8080`,
          changeOrigin: true,
        } 
      }
    }
  }

5、配置完记得重启项目

关于mapState与mapMutations在另一篇文章有记录
https://blog.csdn.net/limmt2020/article/details/120004852

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值