vue3使用pinia中的actions,需要调用接口的话

actions,需要调用接口的话,假如页面想要调用actions中的方法获取数据,

必须使用try catch async await 进行包裹,详情看下面代码

复制代码
import {defineStore} from 'pinia'
import {reqCode,reqUserLogin} from '../../api/hospital/index'
import {PhoneTy} from '../../api/hospital/type'
const useUserStore = defineStore('User',{
    state:()=>{
        return{
            visiable: false,//用于控制登录组件的dialog显示与隐藏
            code: '',//存储用户的验证码,
            //存储用户的信息
            userInfo:JSON.parse(localStorage.getItem('USERINFO') as string) || {}
        }
    },
    actions:{
        //获取短信验证
      async  getCode(value:string){
         const r:PhoneTy = await reqCode(value) as any
         if(r.code == 200){
            this.code = r.data
            console.log(this.code,'this.code1')
         }
         console.log(this.code,'this.code2')
         
        },
        //登陆用户
        async reqUserLogin(value:object){
          const r = await reqUserLogin(value)
          this.userInfo = r.data
          
          localStorage.setItem('USERINFO',JSON.stringify(this.userInfo))
          console.log(r)
        }
    }
})
export default useUserStore

在页面中使用

复制代码
引入pinia中的插件
import useUserStore from "../../store/modules/user";
let userStore = useUserStore();
//切记需要使用try catch,以及async await配合使用调用的接口,不然获取不到数据

//获取短信验证码
const getCode = async()=>{
    console.log(loginParam.phone,'loginParam.value.phone')
    try{
      
      if(isPhone.value){
        console.log(isPhone,'isPhone')
        await userStore.getCode(loginParam.phone);
        // userStore.getCode(loginParam.phone)
        console.log(userStore.code,'userStore.code')
    loginParam.code = userStore.code
    flag.value = true;
      }else{
        return
     
      }

    }catch(error){


    }

}
相关推荐
木易士心几秒前
从 MVP 到千万级并发:AI 在前后端开发中的差异化落地指南
前端·后端
葡萄城技术团队2 分钟前
字体与打印:前端开发最常见的三个“为什么”
前端
王夏奇4 分钟前
python中的深浅拷贝和上下文管理器
java·服务器·前端
siger10 分钟前
徒手开荒-我用纯Nodejs+pnpm+monorepo改造了一个多vue2的iframe"微前端"项目
前端·node.js·前端工程化
lichenyang45310 分钟前
海克斯大乱斗攻略网站 —— 从零开发到云服务器部署全记录
前端
你的代码僚机13 分钟前
《别再被 SSO 骗了!前端单点登录原理+避坑指南》
前端
不懂代码的切图仔29 分钟前
移动端h5实现横屏在线签名
前端·微信小程序
少卿31 分钟前
OpenClaw 的 summarize 技能——开发者的智能摘要利器
前端·后端·程序员
仰望.32 分钟前
vue vxe-table 数据分组与排序的实现方式
vue.js·vxe-table
麦秋33 分钟前
前端静态页面自动生成(Figma MCP + VS code + Github copilot)
前端·vue.js