一、在vue项目中使用mock.js(详解)

步骤1.搭建测试项目

步骤1.1创建项目

命令:
vue create mock-demo

步骤1.2安装依赖

命令:

#使用axios发送ajax 
cnpm install axios--save
#使用mockjs产生随机数据
cnpm install mockjs--save-dev
#使用json5解决ison文件,无法添加注释问题
cnpm install json5--save-dev

步骤2.学习mockjs

新建mock文件夹,新建testMockis.js
mockjs语法定义:http://mockjs.com/examples.html
在这里插入图片描述

const Mock = require('mockjs')let id = Mock.mock('@id')
// console.log(id)let obj = Mock.mock({id: '@id'
})
// console.log(obj)var userInfo = Mock.mock({id: "@id()", //得到随机的idusername: "@cname()", //随机生成中文名字date: "@date()", //随机生成日期avator: "@image('200x200','#50B347','#fff','avatar')", //生成图片,参数:size,background,foreground,textdescription: "@paragraph()", //描述ip: "@ip()", //IP地址email: "@email()" //email
})
console.log(userInfo)

在这里插入图片描述

步骤3 学习JSON5

步骤3.1 在mock文件夹下创建userInfo.json5文件

userInfo.json5:

{id: "@id()", //得到随机的idusername: "@cname()", //随机生成中文名字date: "@date()", //随机生成日期avator: "@image('200x200','#50B347','#fff','avatar')", //生成图片,参数:size,background,foreground,textdescription: "@paragraph()", //描述ip: "@ip()", //IP地址email: "@email()" //email
}

在这里插入图片描述

步骤3.2 引入json5库来解析json5格式

在mock文件夹下,新建testJSON5.js
在这里插入图片描述

const fs = require('fs')
const path = require('path')
const JSON5 = require('json5')var json = fs.readFileSync(path.join(__dirname, './userInfo.json5'),'utf-8')
console.log(json)var obj = JSON5.parse(json) //parse 将字符串转换成对象
console.log(obj)

在这里插入图片描述

步骤4.mock和vue-cli结合

步骤4.1新建index.js

在mock文件夹下,新建index.is
在这里插入图片描述

const fs = require('fs')
const path = require('path')
const Mock = require('mockjs')
const JSON5 = require('json5')// 读取json文件
function getJsonFile(filepath) {// 读取指定json文件var json = fs.readFileSync(path.resolve(__dirname,filepath),'utf-8')return JSON5.parse(json);}// 返回一个函数
module.exports = function(app) {// 监听http请求app.get('/user/userInfo', function(req,res) {// 每次响应请求时读取mock data的json文件// getJsonFile方法定义了如何读取json文件并解析成数据对象var json = getJsonFile('./userInfo.json5')// 将json传入Mock.mock方法中,生成数据返回给浏览器res.json(Mock.mock(json))})
}

步骤4.2 了解在vue-cli中如何利用webpack的devServer启动一个后端服务器

在这里插入图片描述

我们下面借助vue-cli 里面的 webpack的devServer来启动一个后端服务器

参考vue-cli文档:https://cli.vuejs.org/zh/config/#devserver
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
webpack官方文档:https://webpack.js.org/configuration/dev-server/#devserverbefore
在这里插入图片描述

步骤4.3 在项目根路径下创建vue.config.js文件

在这里插入图片描述
在这里插入图片描述

步骤4.4 运行我们的项目

命令: npm run server
在这里插入图片描述

步骤4.5 在HelloWorld中编写发送请求的代码

在这里插入图片描述

<script>import axios from 'axios'export default {name: 'HelloWorld',props: {msg: String},mounted: function() {axios.get('/user/userInfo').then(res => {console.log(res);}).catch(err => {console.log(err);})}}
</script>

访问网址,查看控制台是否有数据打印:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

步骤5 移除mock.js

采用环境变量!
参考官方文档:https://cli.vuejs.org/zh/guide/mode-and-env.html#%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F

修改index.js文件,添加判断:
在这里插入图片描述

步骤5.1 在项目根目录下新建.env.development文件,然后重新执行命令 npm run serve

在这里插入图片描述
在这里插入图片描述

步骤5.2 刷新网页,发现可以正常发送请求,获取到响应数据

在这里插入图片描述

步骤5.3 当后端开发人员已经把服务器开发好了之后,我们想要把mockjs移除,只需要把.env.development文件中的代码改为MOCK=false即可!!!

在这里插入图片描述
改完代码后,重新执行npm run serve,再次打开网页验证是否还能获取到mock给我们响应的数据:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
404 Not Found 说明没有前端并没有请求到mockjs提供的数据,即mockjs移除成功!

总结:

在这里插入图片描述

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

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

相关文章

二、在jQuery中使用mockjs

在jQuery项目中使用mock.js 步骤1.搭建项目 步骤1.1创建项目 新建文件夹jquery-mock-demo 步骤1.2新建index.html&#xff0c;引入jquery.js文件和mock.js <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title&g…

Android 中如何计算 App 的启动时间?

&#xff08;转载&#xff09; 已知的两种方法貌似可以获取&#xff0c;但是感觉结果不准确&#xff1a;一种是&#xff0c;adb shell am start -w packagename/activity,这个可以得到两个值&#xff0c;ThisTime和TotalTime&#xff0c;不知道两个有什么区别&#xff0c;而且与…

项目实战:Express实现学生管理系统(CRUD)

一、起步 初始化 npm init -y 生成package.json文件 模板处理 cnpm install express --save cnpm install bootstrap --savenpm install --save art-template npm install --save express-art-template//两个一起安装 npm i --save art-template express-art-template文件目录…

2016年度 JavaScript 展望(下)

【编者按】本文作者为资深 Web 开发者 TJ VanToll, TJ 专注于移动端 Web 应用及其性能&#xff0c;是《jQuery UI 实践》 一书的作者。 本文系 OneAPM 工程师编译呈现&#xff0c;以下为正文的第二部分。点此阅读第一部分。 本地移动 apps 在2015年&#xff0c;出现了一种新的基…

Python模块之MyQR——制作个性化动态二维码(超详细)

一、首先安装MyQR 第一种方式&#xff1a;cmd 命令行输入 pip install MyQR 第二种方式&#xff1a;pyCharm中手动选择进行安装 二、 myqr.run() 函数里面的参数 三、编写代码 # encodingutf-8 from MyQR import myqrmyqr.run(words"https://blog.csdn.net/weixin_448…

地址选择控件开发-

先睹为快 闲话少说&#xff0c;我们先来看看今天我们研究的控件的最终效果图(参照天猫的送货地址设置的效果)&#xff1a; “地址选择Web控件”的基本组成&#xff1a; 使用控件举例&#xff1a; <!--需要加载和引用的文件--> <link rel"stylesheet" href&q…

逻辑回归(logistic regression)的本质——极大似然估计

文章目录1 前言2 什么是逻辑回归3 逻辑回归的代价函数4 利用梯度下降法求参数5 结束语6 参考文献1 前言 逻辑回归是分类当中极为常用的手段&#xff0c;因此&#xff0c;掌握其内在原理是非常必要的。我会争取在本文中尽可能简明地展现逻辑回归(logistic regression)的整个推导…

使用mongoose 在 Node中操作MongoDB数据库

MongoDB 关系型和非关系型数据库 关系型数据库&#xff08;表就是关系&#xff0c;或者说表与表之间存在关系&#xff09;。 所有的关系型数据库都需要通过sql语言来操作所有的关系型数据库在操作之前都需要设计表结构而且数据表还支持约束 唯一的主键默认值非空 非关系型…

pip install时发生raise ReadTimeoutError(self._pool, None, 'Read timed out.')的解决方案

问题描述 在windows下&#xff0c;python在安装一些包的时候&#xff0c;常常会碰到time out的情况&#xff0c;如下图所示。不管再重试几次都是如此&#xff0c;这时候该怎么办呢&#xff1f; 解决方案 方案一&#xff1a;更换安装源&#xff08;推荐使用豆瓣源&#xff09…

使用Node 操作MySQL数据库

1. 安装 官方文档&#xff1a;https://www.npmjs.com/package/mysql npm install --save mysql2.代码演示 var mysql require(mysql);// 1.创建连接 var connection mysql.createConnection({host : localhost,user : root,password : root,database : my_db …

利用随机森林对特征重要性进行评估

文章目录1 前言2 随机森林&#xff08;RF&#xff09;简介3 特征重要性评估4 举个例子5 参考文献1 前言 随机森林是以决策树为基学习器的集成学习算法。随机森林非常简单&#xff0c;易于实现&#xff0c;计算开销也很小&#xff0c;更令人惊奇的是它在分类和回归上表现出了十…

Promise学习——解决回调地狱问题

Promise promise 容器概念&#xff1a; callback hell&#xff08;回调地狱&#xff09;: 文件的读取无法判断执行顺序&#xff08;文件的执行顺序是依据文件的大小来决定的&#xff09;(异步api无法保证文件的执行顺序) var fs require(fs);fs.readFile(./data/a.text,ut…

基于哈希表的索引堆变形(Hackerrank: QHEAP1)

问题来源 此题来自于Hackerrank中的QHEAP1问题&#xff0c;考查了对堆结构的充分理解。成功完成此题&#xff0c;对最大堆或者最小堆的基本操作实现就没什么太大问题了。 问题简述 实现一个最小堆&#xff0c;对3种类型的输入能给出正确的操作&#xff1a; “1 v” - 表示往…

Node 中的path模块

参考文档&#xff1a;https://nodejs.org/docs/latest-v13.x/api/path.html path模块中的常用API&#xff1a; path.basename&#xff1a;获取路径的文件名&#xff0c;默认包含扩展名path.dirname&#xff1a;获取路径中的目录部分path.extname&#xff1a;获取一个路径中的扩…

Node中的fs模块

1.fs.stat检测是文件还是目录 2.fs.mkdir创建目录 3.fs.writeFile创建写入文件 4.fs.appendFile追加文件 5.fs.readFile 读取文件 6.fs.readdir读取目录 7.fs.rename重命名 8.fs.rmdir删除目录 9.fs.unlink 删除文件 fs.stat 检测是文件还是目录 const fs require(fs)fs.stat…

主成分分析(PCA)和基于核函数的主成分分析(KPCA)入门

文章目录1 前言2 PCA的原理2.1 什么是投影2.2 投影后的方差2.3 转化为求特征值的问题2.4 符号的表示3 KPCA的原理4 PCA和KPCA在Python中的使用4.1 PCA的使用4.2 KPCA的使用5 参考文献1 前言 主成分分析是在做特征筛选时的重要手段&#xff0c;这个方法在大部分的书中都只是介绍…

算法分类整理+模板①:矩阵快速幂

一直有一个想法&#xff0c;感觉自己很多基础算法不是很扎实&#xff0c;想要找个机会写一些算法的整理&#xff0c;顺便自己总结一些实用的模板。 最近偶然在训练赛中连续做了2道思维矩阵快速幂的题目&#xff0c;碰巧有时间&#xff0c;就以矩阵快速幂作为这个系列博客的开始…

爬虫小记:利用cookies跳过登陆验证码

前言 在爬取某些网页时&#xff0c;登陆界面时经常遇到的一个坎&#xff0c;而现在大多数的网站在登陆时都会要求用户填写验证码。当然&#xff0c;我们可以设计一套机器学习的算法去破解验证码&#xff0c;然而&#xff0c;验证码的形式多种多样&#xff0c;稍微变一下&#…

Nodejs 中的包、npm 、第三方模块、 package.json 以及 cnpm

一、包与 NPM 包Nodejs 中除了它自己提供的核心模块外&#xff0c;我们可以自定义模块&#xff0c;也可以使用第三方的 模块。Nodejs 中第三方模块由包组成&#xff0c;可以通过包来对一组具有相互依赖关系的模块进行 统一管理。 完全符合 CommonJs 规范的包目录一般包含如下…

神经网络中BP(back propagation)到底在干些什么

前言 想要理解神经网络的工作原理&#xff0c;反向传播(BP)是必须搞懂的东西。BP其实并不难理解&#xff0c;说白了就是用链式法则(chain rule)算算算。本文试图以某个神经网络为例&#xff0c;尽可能直观&#xff0c;详细&#xff0c;明了地说明反向传播的整个过程。 正向传…