vue 用户列表,请求接口中数据并渲染页面,分页

2023-10-30

参考:vue电商项目实战_哔哩哔哩_bilibili

用户列表-渲染数据-一般数据

1.接口请求数据格式,get方式,传入参数:page,rows

 2.初始化定义变量

3.联调接口

            // 1.created()
            // 2.methods: 发送请求
            // 3.接口文档中除了登录之外的所有请求都需要进行授权--设置请求头
            // 4.找axios中关于请求头设置的代码
                    const AUTH_TOKEN = localStorage.getItem('token')
                    this.$axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
            // 5.发送请求,返回数据(网络请求写在组件里面)

            // 初始化,获取表格数据
            // 1.created()
            // 2.methods: 发送请求
            // 3.接口文档中除了登录之外的所有请求都需要进行授权--设置请求头
            // 4.找axios中关于请求头设置的代码
            // const AUTH_TOKEN = localStorage.getItem('token')
            // this.$axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
            // 5.发送请求,返回数据
            async getUserList() {
                // 需要授权的API,必须在请求头中使用Authorization字段提供token令牌
                const AUTH_TOKEN = localStorage.getItem('token')
                this.$axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;

                const res = await this.$axios.get(`/jiangsu/sys/queryUserByPage?page=${this.pages}&rows=${this.rows}`)
                if(res.data.code == 200){
                    // 1.给表格数据赋值
                    this.userListArray = res.data.data.rows
                    // 2.给total赋值
                    this.total = res.data.data.total
                    // 3.提示用户
                    // this.$message.success('获取到数据')
                }
                else{
                    // 提示
                }

            },

或者将网络请求写在vux里面:

    /**
     *
     *分页查询用户信息
     * @param {*} { commit, dispatch }
     * @param {*} data
     */
    queryUserByPage ({ commit, dispatch }, data) {
      const p = new Promise((resolve, reject) => {
        // get 传参
        axios.get('/jiangsu/sys/queryUserByPage', {
          params: {
            page: data.page,
            rows: data.rows
          }
        }).then(res => {
          const code = res.data.code;
          const data = res.data.data;
          const message = res.data.message;
          if (code === 200) {
            commit('initqueryUserByPage', data)
            if (!data) {
              messageTips(this._vm.$message, message, 'warn')
            }
            resolve(data)
          }
        })
      });
      return p;
    }

4.渲染数据

一开始搭建页面时候的死数据是写在dataSource里的,我们在请求接口成功后把把获取到的所有数据放在userListArray里面,更改数据源为userListArray

 修改组件中列名里的dataIndex值为接口所对应的字段值,所有数据会立马呈现在页面上

效果如下:

 用户列表-分页组件

1.获取表格中数据

            // 初始化,获取表格数据
            // 方法1,网络请求在vux里
            async getUserList() {
                debugger
                let params = {
                    page: this.pages,
                    rows: this.rows
                }
                await this.queryUserByPage(params).then(res => {
                    console.log(res)
                    this.userListArray = res.rows
                    this.total = res.total
                })

                // 方法2,未完善
                // const AUTH_TOKEN = localStorage.getItem('token')
                // this.$axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
                // const res = await this.$axios.get(`/jiangsu/sys/queryUserByPage?page=${this.page}&rows=${this.rows}`)
                // if (res.data.code == 200) {
                //     this.userListArray = res.data.data.rows
                //     this.total = res.data.data.total
                //     // this.$message.success('获取到数据')
                // }
                // else {
                //     // 提示
                // }

            },

 2.分页组件 

            <div class="seaTable">
                <a-table bordered :data-source="userListArray" :columns="columns" :pagination="false">
                    <template slot="name" slot-scope="text, record">
                        <editable-cell :text="text" @change="onCellChange(record.key, 'name', $event)" />
                    </template>
                    <template slot="operation" slot-scope="text, record">
                        <a>修改</a>
                        <a-divider type="vertical" />
                        <a>删除</a>
                        <a-divider type="vertical" />
                        <a>修改密码</a>
                    </template>
                </a-table>
                <!-- 分页 -->
                <div class="pagein">
                    <a-pagination v-model="pages" :total="total" :page-size="rows" show-less-items
                        :show-total="total => `共${total}条数据`" @change="onChangePage" />
                </div>
            </div>

 3.data定义变量

4.分页改变时的事件,@change事件--->页码改变的回调,参数是改变后的页码及每页条数

            // 分页改变时调用组件里的方法
            onChangePage(page, pageSize) {
                console.log(page, pageSize)
                this.pages = page
                this.rows = pageSize
                this.getUserList()
            },

5.实现效果:用户点击某一页,则显示对应页的数据

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue 用户列表,请求接口中数据并渲染页面,分页 的相关文章

  • saltstack安装

    ubuntu install 1 ppa install sudo add apt repository ppa saltstack salt sudo apt get update sudo apt get install salt ma

随机推荐

  • 字符串替换C++实现

    题目 请实现一个函数 将一个字符串中的每个空格替换成 20 例如 当字符串为We Are Happy 则经过替换之后的字符串为We 20Are 20Happy 思路 给定了字符串 和字符串最大长度 替换空格为 20 找出所有空格 计算新的长
  • vs 自定义 格式化代码快捷键

    vs 自定义 格式化代码快捷键 工具 选项 环境 键盘 编辑 设置选定内容的格式 全局 输入自己想要的快捷键 分配 确定
  • sysdba不能远程登录

    sysdba不能远程登录这个也是一个很常见的问题了 碰到这样的问题我们该如何解决呢 我们用sysdba登录的时候 用来管理我们的数据库实例 特别是有时候 服务器不再本台机器 这个就更是有必要了 当我们用sqlplus as sysdba 是
  • 怎么利用数据库做分布式共享锁

    一 适用环境 1 数据库集群模式 1主多从 2 单机数据库 3 数据库必须提供行级锁功能 二 原理 cas算法 代码 更新当前值为new updateCurrentValue id new old old 通过id 查到的值 new 期望的
  • 变量交换的四种方式

    可以使用以下方法对两个变量进行交换 方法一 定义一个中间量 define CRT SECURE NO WARNINGS include
  • VUE 项目文件夹上传下载解决方案

    原理 js将大文件分成多分 全部上传成功之后 调用合并接口合成文件 如果传输中断 下次上传的时候过滤掉已经上传成功的分片 将剩余的分片上传 成功之后合并文件 前置条件 获取uoloadId接口 用于标记分片 分片上传接口 合成文件接口 后端
  • matplotlib画图间隔范围等设置

    import matplotlib pyplot as plt from matplotlib pyplot import MultipleLocator 从pyplot导入MultipleLocator类 这个类用于设置刻度间隔 x va
  • Burpsuite教程(一)Burpsuite 火狐谷歌浏览器抓包教程

    文章目录 Web抓包 火狐抓包 谷歌抓包 小技巧 结束 Web抓包 火狐抓包 环境需求 火狐浏览器 代理插件 1 打开测试工具BurpSuite 默认工具拦截功能是开启的 颜色较深 我们点击取消拦截 下图取消拦截状态 数据包可以自由通过 2
  • vue3.0中全局注册组件版本1-官方

    前言 在对vue3 0的使用和学习中 发现了很多和以前不一样的方法 这里聊一聊vue3 0中给我们提供的全局的注册组件方法 官方文档 入口 目录 具体方法介绍 1 前提 返回一个提供应用上下文的应用实例 应用实例挂载的整个组件树共享同一个上
  • iOS字典转成JSON换行符问题

    问题 使用系统框架将字典转成压缩转义后的JSON字符串 发现字符串中带有多个换行符 系统转JSON的方法如下 let json try JSONSerialization jsonObject with validData options
  • 嵌入式开发笔记—关于>>和<<、&和&&和指针

    1 gt gt 和 lt lt 符号 gt gt 可以理解为除以2的几次方 例如a gt gt b相当于a除以2 b 相反 符号 lt lt 可以理解为乘2的几次方 上面描述的只是它们的数字意义 实际上 gt gt 为右移运算符 其运算规则
  • 架构师之我见

    架构师是一个项目组的灵魂人物 他决定着整个系统的技术选型 整体架构以及模块划分 同时还可能担当与领导层的沟通角色 从某种意义上来说 架构师在很大程度上决定着项目的成败与否 正所谓火车跑得快 全靠车头带 很多优秀的架构师都是从一个优秀的开发人
  • C模拟C++静态断言

    百度百科 C 11新特性 静态断言 Static assertions Static assert 在解释 if 和 error 之后被处理 简单的说就是检测代码 不可能 事件的发生 如果真的发生了 在编译期间编译器会报错 表示代码的逻辑存
  • vector数组最大、小值及所在坐标

    在普通数组中 例 a 1 2 3 4 5 6 int maxValue max element a a 6 最大值 int minValue min element a a 6 最小值 int maxPosition max element
  • 学创客机器人编程材料费贵吗_创客教育只是学编程、机器人和3D打印?

    创客 Mak er 创 指创造 客 指从事某种活动的人 创客 本指勇于创新 努力将自己的创意变为现实的人 这个词译自英文单词 Mak er 源于美国麻省理工学院微观装配实验室的实验课题 此课题以创新为理念 以客户为中心 以个人设计 个人制造
  • cavans 详解

    Canvas Color Styles Shadows 属性 fillStyle 设置或者返回填充的颜色 渐进色 strokeStyle 设置或者返回描边的颜色 渐进色 shadowColor 设置或者返回shadows的颜色 shadow
  • KEIL MDK中 warning: #223-D: function "xxx" declared implicitly 解决方法

    今天在EINT的范例里添加了一个函数 即eint c中添加了一个datawrite 的函数 并在主函数main c中调用 编译便警告 warning 223 D function datawrite declared implicitly
  • 详解Shiro认证流程

    详解Shiro认证流程 isAccessAllowed Subject在如何得到 resolveSession doCreateSubject save Subject subject isAuthenticated onAccessDen
  • EditText TextWatch监听简单使用

    TextWatch 接口方法如下 方法执行顺序 beforeTextChanged gt onTextChanged gt afterTextChanged new TextWatcher This method is called to
  • vue 用户列表,请求接口中数据并渲染页面,分页

    参考 vue电商项目实战 哔哩哔哩 bilibili 用户列表 渲染数据 一般数据 1 接口请求数据格式 get方式 传入参数 page rows 2 初始化定义变量 3 联调接口 1 created 2 methods 发送请求 3 接口