也是查了很多的资料,整理出来。实现了前后端的分离,用到的技术vue-cli,webpack,node,json-server。首先全局安装json-server

  1. cnpm i json-server -g

安装好之后,修改配置文件,config-->index.js-->proxyTable

  1. proxyTable: {
  2. '/api/': {
  3. target: 'http://localhost:3000',
  4. changeOrigin: true,
  5. secure: false,
  6. pathRewrite: {
  7. '^/api/': ''
  8. }
  9. }
  10. },

在目录下建立一个mock文件夹  “项目名”-->根目录-->mock

目录的结构如图:

data里面的数据格式如下

  1. {
  2. "data":{
  3. "data":"world",
  4. "status":0,
  5. "msg":"success"
  6. }
  7.  
  8. }

我们的请求地址和所需要的json数据不只是一个所以要分开书写,便于维护, 要建立一个server.js   详细的可见 https://github.com/thierryxing/Falcon/tree/master/mock

  1. const jsonServer = require('json-server');
  2. const server = jsonServer.create();
  3.  
  4. // Support middleware
  5. const middleware = jsonServer.defaults();
  6. server.use(middleware);
  7.  
  8. // 支持加载多个db文件
  9. const _ = require('underscore');
  10. const path = require('path');
  11. const fs = require('fs');
  12. const mockDir = path.join(__dirname, 'data');
  13. const base = {};
  14. const files = fs.readdirSync(mockDir);
  15. files.forEach((file) => {
  16. _.extend(base, require(path.resolve(mockDir, file)))
  17. });
  18. const router = jsonServer.router(base);
  19.  
  20. // 处理登录逻辑
  21. server.post('/account/login', (req, res) => {
  22. let db = router.db // lowdb instance
  23. let data = db.get('login').value()
  24. res.jsonp({
  25. data: data,
  26. status: {
  27. code:0,
  28. msg:'success'
  29. },
  30. message: ''
  31. })
  32. })
  33. // 处理登出逻辑
  34. server.post('/account/logout', (req, res) => {
  35. let db = router.db
  36. let data = db.get('logout').value()
  37. res.jsonp({
  38. data: data,
  39. status: 0,
  40. message: ''
  41. })
  42. })
  43.  
  44. server.use(router)
  45.  
  46. // 返回自定义格式数据
  47. router.render = (req, res) => {
  48. res.jsonp({
  49. data: res.locals.data,
  50. status: 0,
  51. message: ''
  52. })
  53. }
  54.  
  55. server.listen(3000, () => {
  56. console.log('JSON Server is running')
  57. })

最后修改package.json文件package.json-->scripts

  1. "scripts": {
  2. "dev": "node build/dev-server.js",
  3. "start": "node build/dev-server.js",
  4. "build": "node build/build.js",
  5. "mock": "node mock/server.js",
  6. "mockdev": "npm run mock & npm run dev"
  7. },

启动项目

npm run mockdev

最后在页面中发出请求 ,我这里使用的axios 在vue 中配置下

  1. import axios from 'axios';
  2. Vue.prototype.$http = axios;

页面的请求函数

  1. this.$http.get('/api/data').then((res)=>{
  2. console.log(res)
  3. })

vue 项目中使用mock假数据实现前后端分离的更多相关文章

  1. 使用RAP2模拟假数据实现前后端分离

    一.为什么使用RAP2 在一个项目的开发中,在页面需要使用大量数据进行渲染生成前,后端开发人员的接口可能还没有写完, 当前端没有后端数据支持的情况下,我们使用mock.js(mock.js用于生成随机 ...

  2. Mock模拟数据,前后端分离

    安装 使用npm安装: npm install mockjs; 或直接<script src="http://mockjs.com/dist/mock.js">< ...

  3. Vue项目中v-for无法渲染数据

    在Vue项目中,我们想要实现下面的布局效果 后端返回的数据格式如下,可以看出产品列表五张图的数据位于同一个数组中 而我的html结构如下: 我希望直接渲染左边一张大图,然后右边的四张小图通过v-for ...

  4. Spring Boot +Vue 项目实战笔记(二):前后端结合测试(登录页面开发)

    前言:关于开发环境 每位 Coder 都有自己偏好的开发工具,从大的方面划分主要有文本编辑器流和 IDE 流两种,我有一段时间也喜欢用编辑器(Sublime Text.Vim),但对我来说开发效率确实 ...

  5. Vue项目中jsonp抓取数据实现方式

    因为最近在做vue的项目,在前端做数据的时候遇到了数据抓取的难题,查了一些资料,自己也研究了一下,总体来说是搞出来了(基于黄奕老师的项目找出来的经验),废话不多说,直接上代码 ------------ ...

  6. Vue学习笔记-基于CDN引入方式简单前后端分离项目学习(Vue+Element+Axios)

    一  使用环境 开发系统: windows 后端IDE: PyCharm 前端IDE: VSCode 数据库: msyql,navicat 编程语言: python3.7  (Windows x86- ...

  7. vue项目中返回之前页面数据不刷新的问题

    利用vue做项目的时候会有让用户选择当前页面的某些数据,然后再跳到下一页,而下一页是根据上一页的数据来的,有时候选择了上一页的不同选项,下一页的数据可能还是之前的 这个就属于vue的数据获取问题 解决 ...

  8. axios + mock.js模拟数据实现前后端分离开发的实例代码

    首先就是必须安装axios和mock.js npm install axios npm install mockjs 1. 然后在文档src中新建一个mock.js文件,如图 2. 在main.js中 ...

  9. Docker中Spring boot+VueJS+MongoDB的前后端分离哲学摔跤

    此文献给对数据有热情,想长期从事此行业的年轻人,希望对你们有所启发,并快速调整思路和方向,让自己的职业生涯有更好的发展. 根据数据应用的不同阶段,本文将从数据底层到最后应用,来谈谈那些数据人的必备技能 ...

随机推荐

  1. jsonignore的一个坑

    import org.fasterxml.jackson.annotate.JsonIgnore; 和 import org.codehaus.jackson.annotate.JsonIgnore; ...

  2. 迅雷笔试题 (JAVA多线程)启动三个线程,分别打印A B C,现在写一个程序 循环打印ABCABCABC

    题目:http://wenku.baidu.com/view/d66187aad1f34693daef3e8a.html 启动三个线程,分别打印A B C,现在写一个程序 循环打印ABCABCABC. ...

  3. Mybatis的小计

    1连接池 一 我的错误想法 poolMaximumIdleConnections 最大活跃连接数 poolMaximumActiveConnections 最大空闲连接数 我一直以为 空闲是一直存在的 ...

  4. C#中动态创建数据库和数据表,很经典【转】

    用ADOX创建access数据库方法很简单,只需要new一个Catalog对象,然后调用它的Create方法就可以了,如下: ADOX.Catalog catalog = new Catalog(); ...

  5. elasticsearch.yml基本配置说明

    一.基本配置 elasticsearch的config文件夹里面有两个配置文 件:elasticsearch.yml和logging.yml,第一个是es的基本配置文件,第二个是日志配置文件,es也是 ...

  6. C 碎片四 流程控制

    前面介绍了程序中用到的一些基本要素(常量,变量,运算符,表达式),他们是构成程序的基本成分,下面将介绍C语言中流程控制的三种结构:顺序结构.分支结构.循环结构 一.顺序结构 顺序结构的程序设计是最简单 ...

  7. python中*args, **kwargs理解

    先来看个例子: def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '----------- ...

  8. json解析数组类型的数据

    //微信里一个检测是否有发送模版消息的权限的方法//此处的openid代表的微信用户openid,templateId代表的是模版消息idpublic boolean checkIsSendTempM ...

  9. SQL语句中的having和where的区别

    --首先,两个都是用来进行筛选的: --区别在于 1.当分组筛选的时候使用having eg: 在emp中,查出最低工资小于1000的部门号 select deptno from emp group ...

  10. How to Install Apache Solr 4.5 on CentOS 6.4

    By Shay Anderson on October 2013 Knowledge Base  /  Linux  /  How to Install Apache Solr 4.5 on Cent ...