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

一、背景介绍

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日

相关文章

  • javascript 词法作用域和闭包分析说明

    Javascript 词法作用域和闭包分析说明 什么是词法作用域 Javascript 的词法作用域是指一个变量的作用范围仅限于它所在的代码块内部。也就是说,一个变量的作用域由它在代码中的位置决定。 举个例子: var a = 1; function foo() { var b = 2; console.log(a, b); // 1, 2 } foo();…

    JavaScript 2023年6月10日
    00
  • vue3动态添加路由

    Vue3是一款流行的JavaScript框架,用于构建可复用的Web组件和复杂的单页应用程序。Vue3允许在运行时动态添加路由,从而增强了Web应用程序的可扩展性和灵活性。 以下是Vue3动态添加路由的完整攻略: 1. 安装Vue Router 在开始使用Vue3动态添加路由之前,需要安装Vue Router。可以使用npm或yarn进行安装。例如,在使用n…

    JavaScript 2023年6月11日
    00
  • 仿3721首页模块拖曳移动效果js代码[可拖曳层移动层]

    “仿3721首页模块拖曳移动效果js代码[可拖曳层移动层]”是一种常见的网页可交互功能,下面我将详细讲解如何实现该功能的完整攻略: 1. 准备工作 在实现拖曳移动效果前,我们需要准备一些基础的工作: 1.在 HTML 文件中添加需要被拖曳的标签 2.使用 CSS 设置被拖曳标签的默认样式 3.导入拖曳移动所需的 JavaScript 库 2. 实现拖曳移动效…

    JavaScript 2023年6月11日
    00
  • 用原生JS获取CLASS对象(很简单实用)

    获取CLASS对象是在JavaScript中非常常见的操作,本文将为您介绍如何使用原生JavaScript获取CLASS对象,以及如何操作对象。 1. 获取CLASS对象 首先,让我们来看一下如何使用原生JavaScript获取CLASS对象。在HTML中,我们使用class属性为元素设置类,例如: <div class="box"…

    JavaScript 2023年5月27日
    00
  • 利用Three.js制作一个新闻联播开头动画

    利用Three.js制作一个新闻联播开头动画需要按照以下步骤进行: 1. 准备工作 首先,需要在前端项目中引入Three.js。可以通过CDN或者npm安装来引入Three.js。其次,需要在HTML文档中创建一个容器元素,如div,作为渲染这个场景的容器。 在JS文件中,需要定义渲染器、摄像机、场景,以及需要展示的物体。同时需要设置动画帧数,并创建相应的动…

    JavaScript 2023年6月11日
    00
  • JS正则表达式比较常见用法

    接下来我来为大家详细讲解JS正则表达式比较常见用法的完整攻略。 什么是正则表达式? 正则表达式是一种在字符串中匹配模式的方式。在JS编程中,我们可以使用正则表达式来实现字符串的搜索、替换以及分隔等操作。JS中的正则表达式都是一个对象,我们可以通过RegExp类来创建。 如何创建正则表达式 有两种方式创建正则表达式,分别为使用字面量和使用构造函数: 使用字面量…

    JavaScript 2023年6月11日
    00
  • JavaScript基本语法讲解

    JavaScript基本语法讲解 概述 JavaScript是一种脚本语言,用于Web开发中的客户端脚本编写。其语法基于C语言,但也借鉴了Java、Perl和Python等其他语言的特点。 在本篇攻略中,我们将讲解JavaScript的基本语法,包括变量、运算符、条件语句、循环语句和函数等内容。 变量 在JavaScript中,使用var关键字声明变量。变量…

    JavaScript 2023年5月17日
    00
  • JavaScript中好用的解构用法详解

    JavaScript中好用的解构用法详解 什么是解构 在JavaScript中,解构是一种使得能够从数组或者对象中快速提取值、封装成一个变量或变量组的语法。 数组解构 数组的解构就是对数组的值进行“一一对应的提取”操作 基本用法 基本语法如下: let [a, b, c] = [1, 2, 3]; console.log(a); //1 console.lo…

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