Vue.js(15)之 json-server搭建模拟的API服务器
json-server搭建模拟的API服务器
运行命令
npm install json-server -D全局安装 json-server项目根目录下创建
mock文件夹mock文件夹下添加db.json文件,内容如下:
{
"students": [
{ "id": 1, "name": "小明", "age": 20},
{ "id": 2, "name": "小红", "age": 21},
{ "id": 3, "name": "小白", "age": 19},
{ "id": 4, "name": "小露", "age": 20},
{ "id": 5, "name": "小彩", "age": 22}
],
"country": [
{"name": "中国"},
{"name": "日本"},
{"name": "荷兰"},
{"name": "美国"}
]
}
package.json添加命令:
"mock": "json-server --port 1995 mock/db.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "webpack-dev-server --open --port 80 --hot",
"mock": "json-server --port 1995 mock/db.js",
"build": "webpack"
},
- 打开终端,运行
npm run mock运行 json-server 服务器
faker.js 和 lodash.js 创建假数据
运行
npm i faker -D安装生成假数据的包;运行
npm i lodash -S安装lodash,利用_.times()方法循环调用 faker 生成数据;把
mock目录下的db.json改名为db.js(注意把package.json的mock的db.json改成db.js)修改
db.js中的代码如下:
// 导入 lodash
const _ = require('lodash') // 导入 faker 生成假数据
const faker = require('faker') // 设置本地化
faker.lacale = 'zh_CN' // 使用commonJS 规范把生成的数据导出
// 其中, module.exports 必须指向函数,而且函数中,必须 return 一个数据对象*/
module.exports = () => {
// json-server 最终return的数据,必须是一个对象
const data = { list: [] }
// 调用 _.times 数据生成8次数据
data.list = _.times(8, n => {
return {
id: n + 1,
name: faker.random.word(),
ctime: faker.date.recent()
}
})
// 把生成的数据返回出去
return data
}

案例
index.js
import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) // 导入并配置 axios
import axios from 'axios'
Vue.prototype.$http = axios import app from './app.vue'
import list from './list.vue'
import detail from './detail.vue' const router = new Router({
routes: [
{ path: '/', redirect: '/list'},
{ path: '/list', component: list },
{ path: '/list/detail/:id', component: detail, props: true }
]
}) const vm = new Vue({
el: '#app',
render: c => c(app),
router
})
app.vue
<template>
<div>
<h1>APP根组件</h1>
<router-view></router-view>
</div>
</template>
list.vue
<template>
<div>
<h3>列表</h3> <ul>
<li v-for="item in list" :key="item.id" @click="goDetail(item.id)">
{{item.name}}
</li>
</ul>
</div>
</template> <script>
export default {
data() {
return {
// 定义列表数据,默认为空数组
list: []
}
},
created() {
this.getMovieList()
},
methods: {
// 获取列表的数据
async getMovieList() {
const { data: res } = await this.$http.get('http://localhost:1995/list')
this.list = res
},
// 点击,通过编程式导航,跳转到详情页面
goDetail(id) {
this.$router.push('/list/detail/' + id)
}
}
}
</script> <style lang="less" scoped>
li {
list-style: none;
line-height: 35px;
border: 1px dashed #ccc;
margin: 10px 0;
font-size: 12px;
}
</style>
detail.vue
<template>
<div>
<h3>列表</h3> <ul>
<li v-for="item in list" :key="item.id" @click="goDetail(item.id)">
{{item.name}}
</li>
</ul>
</div>
</template> <script>
export default {
data() {
return {
// 定义列表数据,默认为空数组
list: []
}
},
created() {
this.getMovieList()
},
methods: {
// 获取列表的数据
async getMovieList() {
const { data: res } = await this.$http.get('http://localhost:1995/list')
this.list = res
},
// 点击,通过编程式导航,跳转到详情页面
goDetail(id) {
this.$router.push('/list/detail/' + id)
}
}
}
</script> <style lang="less" scoped>
li {
list-style: none;
line-height: 35px;
border: 1px dashed #ccc;
margin: 10px 0;
font-size: 12px;
}
</style>
db.js
// 导入 lodash
const _ = require('lodash') // 导入 faker 生成假数据
const faker = require('faker') // 设置本地化
faker.lacale = 'zh_CN' // 使用commonJS 规范把生成的数据导出
// 其中, module.exports 必须指向函数,而且函数中,必须 return 一个数据对象*/
module.exports = () => {
// json-server 最终return的数据,必须是一个对象
const data = { list: [] }
// 调用 _.times 数据生成8次数据
data.list = _.times(8, n => {
return {
id: n + 1,
name: faker.random.word(),
ctime: faker.date.recent()
}
})
// 把生成的数据返回出去
return data
}


Vue.js(15)之 json-server搭建模拟的API服务器的更多相关文章
- vue.js多页面开发环境搭建
利用 vue-cli 搭建的项目大都是单页面应用项目,对于简单的项目,单页面就能满足要求.但对于有多个子项目的应用,如果创建多个单页面,显示有点重复,特别是 node_modules 会有多份相同的. ...
- vue.js在windows本地下搭建环境和创建项目
Vue.js是一套构建用户界面的渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合.另一方面,Vu ...
- Vue.js项目的开发环境搭建与运行
写作背景:手上入一个用Vue框架写的微信公众号项目,根据公司安排,我负责项目源代码的验收工作(当然专业的工作检测会交给web开发人员,我只是想运行起来看一看). 1 开发环境安装步骤: (一)安装no ...
- vue.js的package.json相关问题解惑
使用vue-cli创建vue.webpack项目,在项目中用到了iSlider移动端滑动插件,只在本地命令工具中npm install islider.js:提交之后,partner下载代码后一直运行 ...
- Win10中Vue.js的安装和项目搭建
一. 提前准备工作 1.Node.js环境 2.Windows10 3.npm(前端包管理工具) 4.webpack(前端资源加载/打包工具) 二. 开始安装 1..下载并安装Node.js 下载地址 ...
- vue.js的手脚架vue-cli项目搭建的步骤
手脚架是什么? 众所周知,现在的前端项目发展得越渐越大,我们前端程序员要从0开始去搭建一套完整的项目很费时,所以这时候前端工程的手脚架就出现了. 我用得vue-cli也是其中之一,还有其他的我也说不清 ...
- vue.js 一(基础环境搭建)
之前由于看了React的东西,写了两篇React的脚手架搭建,一是给自己记一点可用的东西,免得每次都去找,毕竟搭建环境在项目相对固定的时期不是经常要干的事情,一段时间不用就会忘记了. 前端的js框架还 ...
- 从零开始搭建一个vue.js的脚手架
在谷歌工作的时候,我们要做很多界面的原型,要求快速上手,灵活运用,当时用的一些现有框架,比如angular,太笨重了——尤雨溪(Vue.js 作者) vue.js是现在一个很火的前端框架,官网描述其简 ...
- 【Vue】转-Vue.js经典开源项目汇总
版权声明:本文为EnweiTech原创文章,未经博主允许不得转载. https://blog.csdn.net/English0523/article/details/88694219 Vue是什么? ...
随机推荐
- 0-java概述
目录 Java发展历史 java规范 Java三大分支 Java SE学习路径 HelloWorld 1.Java发展历史 - Java出身于sun公司 - sun公司被Oracle公司收购 2.ja ...
- Python Sphinx使用踩坑记录
描述 使用 pip 安装sphinx后,按照教程建立了一个新的py文件,如下 # run.py def run(name): """ this is how we run ...
- 实验吧-web-Once More(php ereg()漏洞)!!!
题目:啊拉?又是php审计.已经想吐了. hint:ereg()函数有漏洞哩:从小老师就说要用科学的方法来算数. 给我们提示:1)ereg()函数漏洞 2)科学计数法 viewsource: < ...
- 单调栈应用--将一个数删除n各数字之后的最大\最小值
E. Playing with numbers time limit per test 2.0 s memory limit per test 64 MB input standard input o ...
- (一)微信小程序环境搭建
1 注册 首先 打开(https://mp.weixin.qq.com/)微信公众平台官网 选着 小程序 之后 在新的页面选择 选着前往注册 按照提示注册 注意:个人版和企业版有一定的区别 2 开发者 ...
- Golang的标准命令简述
Golang的标准命令简述 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Go本身包含了大量用于处理Go程序的命令和工具.go命令就是其中最常见的一个,它有许多子命令,接下来就跟随 ...
- 滑条滚动发请求要用Debounce
import debounce from 'lodash.debounce'; this.deboucedFunc = debounce(this.viewModel.v_onHomeworkRequ ...
- 127-PHP类通过魔术变量判断类中是否存在指定的方法
<?php class ren{ //定义人类 //定义成员属性 private $name='Tom'; private $age=15; //定义成员方法 public function g ...
- GDI+应用2
在上一篇里已经向大家介绍了如何使用GDI+绘制简单的图像,这一片继续向大家介绍其它一些绘图知识.1.首先我们来看下上一片中我们使用过的Pen.Pen的属性主要有: Color(颜色),DashCap( ...
- ACM-Alice and Bob
题目描述:Alice and Bob One day, Alice asks Bob to play a game called “K-in-a-row”. There is a game board ...