Vue Element前端应用开发之根据ABP后端接口实现前端展示

yizhihongxing

一、背景介绍

ABP(AspNet Boilerplate)是一个基于ASP.NET Core 3.0 + Angular 8.0 的模块化Web应用程序框架。Vue Element是Vue.js的一套UI组件库。本篇攻略将介绍如何通过调用ABP后端接口实现Vue Element前端应用开发。

二、环境要求

  1. 安装Vue CLI :npm install -g @vue/cli

  2. 安装Vue Element:npm i element-ui -S

  3. 搭建ABP后端

三、根据ABP后端接口实现前端展示

  1. 创建Vue项目,进入项目文件夹
vue create my-project
cd my-project
  1. 安装axios用于处理HTTP请求:
npm install --save axios
  1. 引入Vue Element UI组件库:
npm i element-ui -S
  1. 引入Vue Element CSS样式:
import 'element-ui/lib/theme-chalk/index.css';
  1. 在main.js中引入Vue Element:
import Vue from 'vue';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);
  1. 编写Vue组件
<template>
    <div>
        <el-table :data="tableData">
            <el-table-column prop="name" label="名称"></el-table-column>
            <el-table-column prop="age" label="年龄"></el-table-column>
            <el-table-column prop="address" label="地址"></el-table-column>
        </el-table>
    </div>
</template>
<script>
import axios from 'axios';
export default {
    data() {
        return {
            tableData: []
        }
    },
    mounted() {
        axios.get('/api/services/app/demo/GetDemo').then(response => {
            this.tableData = response.data.result;
        }).catch(function (error) {
            console.log(error);
        });
    }
}
</script>
  1. 根据ABP后端接口编写API(与Vue组件中的axios请求相对应):
using Abp.AspNetCore.Mvc.Controllers;
using Microsoft.AspNetCore.Mvc;

namespace my-project.Controllers
{
    public class DemoController : AbpController
    {
        private readonly IDemoAppService _demoService;

        public DemoController(IDemoAppService demoService)
        {
            _demoService = demoService;
        }

        [HttpGet]
        public async Task<GetDemoOutput> GetDemo()
        {
            return await _demoService.GetDemoAsync(new GetDemoInput());
        }
    }
}

至此,我们完成了根据ABP后端接口实现前端展示的全过程。

四、示例说明

  1. 示例一:在Vue Element中展示后端返回的数据

在Vue组件中编写axios请求,调用后端接口GetDemo:

axios.get('/api/services/app/demo/GetDemo').then(response => {
    this.tableData = response.data.result;
}).catch(function (error) {
    console.log(error);
});

将后端返回的结果赋给tableData,接着在组件中引入Vue Element UI组件库,使用以下代码展示表格数据:

<el-table :data="tableData">
    <el-table-column prop="name" label="名称"></el-table-column>
    <el-table-column prop="age" label="年龄"></el-table-column>
    <el-table-column prop="address" label="地址"></el-table-column>
</el-table>
  1. 示例二:通过分页组件实现前端数据分页

在Vue组件中引入分页组件库,通过ABP后端接口实现数据分页:

<template>
    <div>
        <el-table :data="tableData">
            <el-table-column prop="name" label="名称"></el-table-column>
            <el-table-column prop="age" label="年龄"></el-table-column>
            <el-table-column prop="address" label="地址"></el-table-column>
        </el-table>
        <el-pagination
            layout="total, sizes, prev, pager, next, jumper"
            :page-sizes="[10, 20]"
            :total="total"
            :current-page.sync="currentPage"
            :page-size.sync="pageSize"
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange">
        </el-pagination>
    </div>
</template>

<script>
import axios from 'axios';
export default {
    data() {
        return {
            tableData: [],
            total: 0,
            currentPage: 1,
            pageSize: 10,
        }
    },
    mounted() {
        this.getTableData(1, 10);
    },
    methods: {
        getTableData(_pageIndex, _pageSize) {
            axios.get('/api/services/app/demo/GetDemo', {
                params: {
                    pageIndex: _pageIndex,
                    pageSize: _pageSize
                }
            }).then(response => {
                this.tableData = response.data.result.items;
                this.total = response.data.result.totalCount;
            }).catch(function (error) {
                console.log(error);
            });
        },
        handleSizeChange(val) {
            this.getTableData(1, val);
            this.pageSize = val;
        },
        handleCurrentChange(val) {
            this.getTableData(val, this.pageSize);
            this.currentPage = val;
        }
    }
}
</script>

根据后端接口返回的总数total,以及Vue组件中分页组件el-pagination的相关参数,实现分页效果。

以上是根据ABP后端接口实现前端展示的完整攻略,示例中介绍了两种方法,包括直接在Vue Element中展示数据,以及通过分页组件实现前端数据分页。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue Element前端应用开发之根据ABP后端接口实现前端展示 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • js+canvas绘制五角星的方法

    这里是“js+canvas绘制五角星的方法”的完整攻略。 1. 准备工作 在开始绘制五角星之前,需要准备好以下工作: 在HTML文件中添加一个Canvas标签用于绘图; 在Javascript中获取Canvas元素,并获取它的2D上下文,以便可以在Canvas上绘制图形; 定义绘制五角星的函数,该函数应该接收五角星的中心点坐标、半径、线宽和填充颜色等参数。 …

    JavaScript 2023年5月28日
    00
  • JavaScript Base64编码和解码,实现URL参数传递。

    首先我们需要了解什么是Base64编码。Base64编码是将二进制数据通过特定算法转换成文本字符串的一种编码方式。在浏览器中使用Base64编码的最常见场景就是在URL中传递参数,因为URL中不能包含某些字符,Base64编码后的字符串是可以安全传递的。 接下来我们讲一下如何使用JavaScript进行Base64编码和解码。 在JavaScript中,我们…

    JavaScript 2023年5月20日
    00
  • webpack-dev-server搭建本地服务器的实现

    下面给大家讲讲如何使用webpack-dev-server搭建本地开发服务器并实现实时重载,具体步骤如下: 安装webpack-dev-server 首先,在项目中安装webpack-dev-server,可以使用npm安装,命令为: npm install webpack-dev-server –save-dev 配置webpack-dev-server…

    JavaScript 2023年6月11日
    00
  • 你可能不知道的JavaScript的new Function()方法

    当我们需要在JavaScript中动态地创建一个函数时,可以使用new Function()方法。它的语法是: new Function([arg1,arg2,…..argn], functionBody) 其中,第一个参数是要创建的函数的参数列表,是一个逗号分隔的字符串,可选。第二个参数是函数体,是一个字符串,必填。 例如,创建一个add函数来做加法运…

    JavaScript 2023年5月27日
    00
  • PHP中CURL的几个经典应用实例

    下面是详细讲解“PHP中CURL的几个经典应用实例”的完整攻略。 1. 什么是CURL? CURL是一种在网络通信中使用的工具,它支持多种网络协议,可以用来HTTP、FTP、SMTP等服务的客户端程序。在PHP中,可以使用CURL库来实现与远程服务器的数据传输。 2. 安装CURL扩展 在使用PHP中的CURL扩展之前,需要先安装CURL扩展,以确保PHP支…

    JavaScript 2023年6月11日
    00
  • HTML实现双11抢劵(设定时间打开抢券的页面)

    实现双11抢劵的功能,需要用到HTML语言和JavaScript脚本。 具体步骤如下: 在HTML文件中添加一个按钮,设置其id为”open-btn”,用于点击后打开抢券页面: <button id="open-btn">打开抢券页面</button> 在JavaScript文件中,为按钮绑定click事件,用于判…

    JavaScript 2023年6月10日
    00
  • js动态拼接正则表达式的两种方法

    JS动态拼接正则表达式的两种方法 在JS中,我们可以使用正则表达式对字符串进行匹配,尤其在一些需要对输入内容进行验证的场景下非常实用。但是,有些时候我们可能需要动态拼接正则表达式,以便更好地实现我们的业务逻辑,那么该如何操作呢?接下来,我们将介绍两种JS动态拼接正则表达式的方法。 使用RegExp构造函数 RegExp构造函数可以接受两个参数,一个是表示正则…

    JavaScript 2023年6月10日
    00
  • JS数组方法some、every和find的使用详情

    JS数组方法some、every和find的使用详情 在 JavaScript 中,数组是一种常用的数据结构类型,而对于数组的操作,有三种常用的数组方法,它们分别是 some、every 和 find,本文将详细讲解它们的使用方法。 some方法 some 方法用于判断目标数组中是否存在至少一个元素满足指定的条件,如果满足则返回 true,如果不满足则返回 …

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部