获取用户列表数据并渲染

看一下后台的API接口,我们这次用到的是“用户数据列表”接口,查询参数有三个,分别是“查询参数”,“当前页码”和“每页显示条数”:

回到Users.vue组件,在script区域完善一下逻辑结构,新增data数据区、生命周期函数created以及methods方法区:

<script>
export default {
    data(){
        return {}
    },
    created(){
 
    },
    methods: {
        
    }
}
</script>

用户列表数据请求需要在生命周期函数created中执行

created(){
    this.getUsersList();
}

methods区定义“getUsersList”函数,然后将请求的对象先在data区域封装好,使用之前我们用axios封装好的$http进行服务请求,使用解构函数将返回的对象封装在res对象中:

<script>
export default {
  data() {
    return {
      //获取用户列表的参数对象
      queryInfo: {
        query: "",
        pagenum: 1,
        pag
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以给你提供一个简单的示例。 首先,你需要在项目中安装 Vue 3、TypeScript 和 Vite,可以使用以下命令: ``` npm install vue@next vue-router@next @types/vue @types/vue-router -S npm install vite -D ``` 接着,在 src 目录下创建一个 components 目录,用于存放组件。在 components 目录下创建一个名为 Table.vue 的文件,用于渲染表格。示例代码如下: ```vue <template> <table> <thead> <tr> <th v-for="column in columns" :key="column.field">{{ column.title }}</th> </tr> </thead> <tbody> <tr v-for="item in items" :key="item.id"> <td v-for="column in columns" :key="column.field">{{ item[column.field] }}</td> </tr> </tbody> </table> </template> <script lang="ts"> import { defineComponent } from 'vue' interface Column { field: string title: string } interface Item { id: number name: string age: number } export default defineComponent({ name: 'Table', props: { columns: { type: Array as () => Column[], required: true, }, items: { type: Array as () => Item[], required: true, }, }, }) </script> ``` 在组件中,我们定义了两个接口,Column 和 Item,分别表示表格的列和数据项。在 props 中声明了 columns 和 items,用于接收传入的列和数据。在模板中,使用 v-for 渲染表头和表格内容。 接下来,在 src 目录下创建一个名为 api.ts 的文件,用于模拟请求数据。示例代码如下: ```ts interface Response<T> { code: number data: T } interface User { id: number name: string age: number } const userList: User[] = [ { id: 1, name: '张三', age: 20 }, { id: 2, name: '李四', age: 22 }, { id: 3, name: '王五', age: 25 }, ] export function getUserList(): Promise<Response<User[]>> { return new Promise((resolve) => { setTimeout(() => { resolve({ code: 0, data: userList }) }, 1000) }) } ``` 在 api.ts 中,我们定义了一个 getUserList 函数,用于模拟请求用户列表数据。该函数返回一个 Promise,用于异步获取数据。 最后,在 src 目录下创建一个名为 App.vue 的文件,用于渲染页面。示例代码如下: ```vue <template> <div> <Table :columns="columns" :items="items" /> </div> </template> <script lang="ts"> import { defineComponent, ref, onMounted } from 'vue' import { getUserList } from './api' import Table from './components/Table.vue' export default defineComponent({ name: 'App', components: { Table }, setup() { const columns = [ { field: 'id', title: 'ID' }, { field: 'name', title: '姓名' }, { field: 'age', title: '年龄' }, ] const items = ref([]) onMounted(async () => { const response = await getUserList() items.value = response.data }) return { columns, items, } }, }) </script> ``` 在 App.vue 中,我们引入了 Table 组件,并在模板中使用 props 将列和数据传递给表格组件。在 setup 中,我们使用 ref 创建了一个 items 变量,用于存储用户列表数据。在 onMounted 生命周期钩子中,使用 async/await 异步获取数据,并将数据赋值给 items 变量。 这样,我们就完成了一个简单的 Vue 3 + TypeScript + Vite 的获取列表数据渲染到表格的示例。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值