vu3-15

发布时间:2023年12月28日

现在把共享数据userInfo和后台数据库数据进行绑定,修改src\store\UserInfo.ts文件

import { defineStore } from 'pinia'//defineStore函数可以帮我们定义共享数据
import _axios from '../api/request'
import { UserInfoDto } from '../model/Model8080'
//useUserInfo是用来获取共享数据的函数
export const useUserInfo = defineStore('userInfo', {//userInfo是给共享数据自定义的名称
    state: () => {
        return { username: 'zhang', name: '张三', sex: '男' }//返回的是共享数据的初值
    },
    // 通过actions给store定义方法
    actions: {
        // get是从后台数据库获取数据
        async get(username: string) {
            const resp = await _axios.get(`/api/info/${username}`)
            //this代表上面的state对象
            Object.assign(this, resp.data.data)
        },
        // update是把前端数据更新到数据库
        async update(dto: UserInfoDto) {
            await _axios.post('/api/info', dto)
            Object.assign(this, dto)
        }
    }
})

修改A6Main.vue文件

<script setup lang="ts">
onMounted(() => {
    //从后端数据库获取serverUsername对应的用户信息
    UserInfo.get(serverUsername.value)
})
</script>

修改A6P1.vue文件

async function onClick(){
  try {
    await validate()
    //把修改后的值更新到数据库
     userInfo.update(dto.value)
    // Object.assign(userInfo,dto.value)
  } catch (error) {
    
  }
}

改完之后刷新一下浏览器页面,因为不刷新页面,ts代码不会重新加载,然后测试一下

文章来源:https://blog.csdn.net/weixin_44478828/article/details/135277376
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。