关于 vue2 后台管理系统构建 vue2+mock.js 的经典案例

news2024/11/17 0:03:32

一,初识 Mock.js 

1.什么是 mock.js: 主要是模拟数据生成器,可以生成随机数据,拦截器 Ajax 请求

2.为什么要使用 mock.js  由于很多学生在学习过程中,后端还没有做好接口,写好接口文档,有了mock.js 前端就不需要等待后端实现接口再写代码。前端可以通过 mock.js 参考接口文档自己先模拟数据 ,即可搭建后端管理系统

二,Mock.js 的安装

1,首先,在自己项目的终端中 实行这段代码

# 安装
npm install mockjs

2,在src文件在新建mock文件夹,再新建 mock.js文件,最后引入和使用 mock.js 如以下代码

// 使用 Mock
var Mock = require('mockjs')
var data = Mock.mock({
    // 属性 list 的值是一个数组,其中含有 1 到 10 个元素
    'list|1-10': [{
        // 属性 id 是一个自增数,起始值为 1,每次增 1
        'id|+1': 1
    }]
})
// 输出结果
console.log(JSON.stringify(data, null, 4))

 3,mock.js导入

在main.js 文件里面添加一下内容:
require('./mock/mock.js')

三,mock.js 经典的登录页面的案例

1. 如图所示主要的项目结构文件分别是 api.js, login.vue , mock.js

 2.首先,我们来看 login.vue 文件的内容:

<template>
    <div class="bodyclass">
        <div class="login">
            <h2>DBM System</h2>
            <el-form label-width="80px" :model="loginForm" ref="loginForm" :rules="rules">
                <el-form-item label="用户名" prop="username">
                    <el-input v-model="loginForm.username"></el-input>
                </el-form-item>
                <el-form-item label="密码" prop="password">
                    <el-input type="password" v-model="loginForm.password"></el-input>
                </el-form-item>
                <el-button @click="confirm">登录</el-button>
            </el-form>

        </div>
    </div>
</template>
<script>

import { setToken } from '@/utils/setToken.js'   //引入封装好的Token 方法
export default {
    data() {
        return {
            loginForm: {
                username: '',
                password: ''
            },
         }},
methods: {
    // 登录后跳转到主页
    confirm() {
        this.$refs.loginForm.validate((valid) => {
            if (valid) {
                this.$axios.post('/login', {
                    username: this.loginForm.username,
                    password: this.loginForm.password
                }).then(res => {
                    if (res.data.code === 200) {
                        setToken("username", res.data.username)   //应用 setToken
                        setToken('token', res.data.token)
                        this.$router.push("/home")                    
                        this.$message({ type: 'success', message: '登录成功!' })
                    } else {
                        this.$message({ type: 'error', message: res.data.message })

                    }
                })
            } else {
                this.$message({
                    type: 'error',
                    message: '请输入用户名和密码'
                })
            }
        })
}}}
</script>

3. 其次 mock.js 文件:

Mock.mock(rurl? ,rtype?,template|function(options))

参数:

rurl: 表示需要拦截的 URL ,可见是URL  字符串或URL 正则

rtype: 表示需要拦截的Ajax 请求类型。 例如get,post,put,delete等

template: 表示数据模板,可以是对象或字符串。 例如: {'data|1-10':[{

function(options) : 表示用于生成数据的函数

options: 指向本次请求的Ajax选项集

//  登录页
let root = {
  username: 'admin',
  password: 'Admin123!'
}
const Mock = require('mockjs');
Mock.mock('/login', 'post', (req) => {
  //  获取用户名和密码
  let { username, password } = JSON.parse(req.body)
  let token = Mock.Random.guid()
  // 匹配用户名和密码
  if (username === root.username && password == root.password) {
    // 接口成功转发 home 页面
    return {
      code: 200,
      message: 'login success',
      token: token,
      username: username,
      }}
   else {
    return ({
      code: 404,
      message: '用户名或密码有误'
    })
  } 
});

4, 最后是 api.js 文件即可

import service from "@/service";
export function logindata(data) {
    return service({
        method: 'post',
        url: '/login',
        data
    })
}

5,效果图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/642369.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023VALSE目标跟踪相关的Poster

前沿&#xff1a;本博文分享了2023 中国无锡举办的VALSE 中与目标跟踪相关的Poster。 1. Weakly Alignment-Free RGBT Salient Object Detection With Deep Correlation Network IEEE TRANSACTIONS ON IMAGE PROCESSING, VOL. 31, 20 摘要&#xff1a;RGBT显著性目标检测&am…

Linux5.4 Mysql数据库初体验及管理

文章目录 计算机系统5G云计算第四章 LINUX Mysql数据库初体验及管理一、数据库相关概念1. 数据 (Data)的概念2.表的概念3.数据库的概念4.数据库管理系统5.数据库系统 二、数据库的发展1.第一代数据库2.第二代数据库3.第三代数据库 三、主流的数据库介绍四、关系数据库1.概念2.E…

最强Postman替代品,国产软件Apifox到底有对牛?

目录 前言&#xff1a; 接口管理现状 一、常用解决方案 二、存在的问题 Apifox 解决方案 一、如何解决这些问题 二、Apifox 做的不仅仅是数据打通 三、后续功能规划 四、更多 Apifox 功能截图 前言&#xff1a; Apifox是一款国产的API接口管理工具&#xff0c;可以帮…

Linux之用户组管理

目录 Linux之用户组管理 创建用户组 --- groupadd命令 语法格式 参数及作用 案例 添加/删除组成员 --- gpasswd命令 命令格式 参数及作用 案例 修改用户组属性 --- groupmod命令 语法格式 参数及作用 案例 删除组账户 --- groupdel命令 语法格式 案例 用户和组…

ASP.NET实验室信息管理系统源码 LIMS系统源码

ASP.NET实验室信息管理系统源码 LIMS系统源码 lims 实验室信息管理系统&#xff08;LIMS&#xff09;。它是由计算机硬件和应用软件组成&#xff0c;能够完成实验室数据和信息的收集、分析、报告和管理。 LIMS实验室信息管理系统专门针对实验室的整体环境而设计&#xff0c;以…

两个链表相加

描述 假设链表中每一个节点的值都在 0 - 9 之间&#xff0c;那么链表整体就可以代表一个整数。 给定两个这种链表&#xff0c;请生成代表两个整数相加值的结果链表。 数据范围&#xff1a;0≤n,m≤1000000&#xff0c;链表任意值 0≤val≤9 要求&#xff1a;空间复杂度 O(n)…

Docker使用记录

文章目录 Docker基本使用Docker配置查看状态卸载安装使用 apt 存储库安装在 Ubuntu 上安装 Docker 桌面(非必要) Docker实例使用现有的镜像查找镜像拖取镜像列出镜像列表更新镜像导出镜像删除镜像导入镜像清理镜像查看容器导出容器导入容器-以镜像的方式创建容器重启容器进入容…

Springboot Apollo配置yml

1.背景&#xff1a; 项目都是配置的Apollo配置中心来进行配置的。新功能需要yml格式的数据&#xff08;层级结构更清晰&#xff09; 2.问题&#xff1a; 1&#xff09;Apollo是否支持yml格式的配置信息&#xff1f; 2&#xff09;配置好了以后读取不到Apollo配置的yml。 3…

平心而论,做电商数据分析还得这款大数据分析平台

各个业务系统上的数据能放一起分析了吗&#xff1f;根据物流周期做好库存计划了吗&#xff1f;广告投入分析评估报表出来吗&#xff1f;运营、物流、财务等部门环节间的信息脱节解决了吗&#xff1f;做电商数据分析不仅仅是做一两个销售分析报表&#xff0c;而是要综合各个部门…

vue3 - 内置组件Teleport的使用

<Teleport> 是一个内置组件&#xff0c;它可以将一个组件内部的一部分模板“传送”到该组件的 DOM 结构外层的位置去。 1&#xff0c;使用场景&#xff1a; 一个组件模板的一部分在逻辑上从属于该组件&#xff0c;但从整个应用视图的角度来看&#xff0c;它在 DOM 中应该…

Python网络爬虫使用教程

文章目录 一、URL资源抓取1.urllib2.requests3.requests-html二、正则表达式三、数据解析1.Beautiful Soup2.lxml3.selectolax四、自动化爬虫selenium五、爬虫框架1.Scrapy2.pyspider框架六、模拟登录与验证码识别七、autoscraper&#xff08;不需要编程基础&#xff09; 一、U…

小鱼深度产品测评之:阿里云新款通用算力型ECS云服务器Universal实例,实力与能力并存的一款产品。

ECS U实例评测 1、引言2、购买流程3、向导展示4、实例4.1 创建实例4.2 迁移上云4.3 查询功能4.3.1 下拉框选项4.3.2 查询结果保存 4.4 默认定位4.5 分组4.6 监控4.6.1 查看监控大盘4.6.2 自定义报警规则4.6.3 一键报警 4.7 列表操作4.7.1 资源变配4.7.2 远程链接4.7.3 续费 4.8…

深入探究测试用例设计的底层逻辑

测试用例是每位测试人员都绕不开的话题&#xff0c;也是大家习以为常的事情。几乎所有测试相关的公众号、博客、专栏&#xff0c;都会提及测试用例&#xff0c;由此可见它的重要性。但是&#xff0c;有许多从业者&#xff0c;对测试用例的设计仍然依靠经验积累&#xff0c;即使…

达梦8命令行方式安装创建数据库

在实际生产环境中&#xff0c;有很多linux服务器并没有安装桌面&#xff0c;无法调用图形化界面来安装、创建和配置数据库。下面讲解在linux操作系统中&#xff0c;以命令行的形式创建、安装、启动DM8数据库。 一、命令行安装数据库软件 1.用root账号将数据库安装包dm8_setup…

DJ4-3 动态分区分配算法

目录 一、基于顺序搜索的分配算法 1、最佳适应算法&#xff08;BF&#xff09; 2、最坏适应算法&#xff08;Worst fit&#xff0c;WF&#xff09; 3、首次适应算法&#xff08;First Fit&#xff0c;FF&#xff09; 4、下次适应算法&#xff08;Next fit&#xff0c;NF&a…

机器人技术在 PCB 制造中的关键优势

原创 | 文 BFT机器人 印刷电路板或 PCB 相当于神经系统的计算机。它是连接微型电子元件&#xff08;电阻器、微芯片、连接器和电容器&#xff09;的基础。它极其复杂&#xff0c;有些部分非常微小&#xff0c;只能在显微镜下才能看到。 机器人技术是 PCB 制造的核心。没有人能…

从事软件测试行业的你是“摆烂”还是“内卷”?

工作几年后&#xff0c;你还在持续地学习吗&#xff1f; 很多人可能在工作本身上已经耗掉了所有的精力&#xff0c;尤其是在软件行业&#xff0c;加班是常态&#xff0c;空余时间再想集中精力学习某方面的知识会很吃力。 如果像我一样&#xff0c;开始几年做的是基本的功能测…

API自动化测试:如何构建高效的测试流程

一、引言 在当前的软件开发环境中&#xff0c;API&#xff08;Application Programming Interface&#xff09;扮演了极为重要的角色&#xff0c;连接着应用的各个部分。对API进行自动化测试能够提高测试效率&#xff0c;降低错误&#xff0c;确保软件产品的质量。本文将通过实…

IT安全解决方案保护企业网络安全

全球每年报告数以万计的网络安全事件&#xff0c;云解决方案和远程工作的大规模采用意味着大多数组织的攻击面呈指数级增长。采用正确的网络安全解决方案是保护企业免受这些攻击的唯一方法。使用正确IT安全解决方案企业网络安全。 IT安全解决方案 ManageEngine IT安全解决方案…

5 月 Web3 游戏月报:增长有迹可循,但困局仍在

作者&#xff1a;lesleyfootprint.network 5 月 13 日&#xff0c;Line 旗下 NFT 子公司计划将于 2023 年发布五款 NFT 游戏。越来越多的游戏开发者和项目开始涌现&#xff0c;web3 游戏不再仅仅是投机的象征&#xff0c;而是真正有越来越多的项目方深耕与此。然而&#xff0c…