作为一个前端入坑的妹子,在学习vue的道路上挣扎徘徊,由一开始的对vue一直蒙圈只知道双向数据绑定和一些'V-x'的指令,慢慢通过一个视频的学习渐渐入坑,对于我这个js基础不怎么好而且编程思维又不是很严谨的人来说还是踩了很多坑,特别是vue配置方面的东西,例如vue-router,vueX,虽然是跟着视频做的,不过每次都有很多地方配置不正确,会报错,特别是最近在跟着视频做一个前端的web页面其中涉及到前后台数据交互方面的说到模拟后台数据的问题,完全懵逼,刚开始都不知哪个文件怎么配置,终于通过网上各种搜索,弄清楚了一些问题附上链接     https://blog.csdn.net/weixin_39728230/article/details/80293892

一、模拟后台数据接口,一般我们用的ajax但是vue里面要用vue-resource这个组件去请求数据,当然不可避免首先要先下载这个组件,方法如下

1、npm install vue-resource --save

2、main.js文件引入vue-resource:

import VueResource from 'vue-resource'

Vue.use(VueResource)

准备工作就绪以后就可以开始模拟后台数据接口配置了,有两种方法,一种是利用一个插件json-server来模拟还有就是利用express方法,支持get和post请求,据说更加通用

  1. create: function(){
  2. //this.$http.get('getList')//ajax请求
  3. this.$http.post('getLisst',{userId:123})
  4. .then(function(data){
  5. console.log(data)//成功回调
  6. },function(err){
  7. console.log(err)//失败回调
  8. })
  9. },

上面这个是在组件中vue调后台数据的get和post请求的写法,post请求可以带参数传递

接下来重要的来了方法一:安装json-server来配置数据

第一步:安装json-server这里啰嗦一句,vue里面所有需要用到的组件都要用 npm install xxx(组件名)来安装

npm install json-server --save

第二步:安装成功之后,接下来就是配置,这里说一下,之前看视频上说配置是在bulid/dev-server.js文件中配置,结果找了半天没找到,似乎是vue2.0删除了那个文件,把它里面的配置放置在了build/webpack.dev.conf.js这个文件里面,如下图代码可以直接放在该文件最下方

  1. //这里是json-server配置信息
  2. //json-server.js
  3. const jsonServer = require('json-server')
  4. const apiServer = jsonServer.create()
  5. const apiRouter = jsonServer.router('db.json') //数据关联server,db.json与index.html同级
  6. const middlewares = jsonServer.defaults()
  7.  
  8. apiServer.use(middlewares)
  9. apiServer.use('/api',apiRouter)
  10. apiServer.listen(3000, () => { //监听端口
  11. console.log('JSON Server is running')
  12. })

第三步:配置完webpack.dev.conf.js文件之后,差不多进行了一半,配置里面看到有个db.json文件这个就是我们自己配置的数据源

这里面就是我们自己写的数据源代码

  1. {
  2. "getNewsList": [
  3. {
  4. "id": 1,
  5. "title": "新闻条目1新闻条目1新闻条目1新闻条目1",
  6. "url": "http://starcraft.com"
  7. },
  8. {
  9. "id": 2,
  10. "title": "新闻条目2新闻条目2新闻条目2新闻条目2",
  11. "url": "http://warcraft.com"
  12. },
  13. {
  14. "id": 3,
  15. "title": "新闻条3新闻条3新闻条3",
  16. "url": "http://overwatch.com"
  17. },
  18. {
  19. "id": 4,
  20. "title": "新闻条4广告发布",
  21. "url": "http://hearstone.com"
  22. }
  23. ]
  24. }

第四步:然后我们看到我们监听的是3000的端口,而我们文件用的是8080的端口,这里就涉及跨域的问题,虽然不是很懂,不过还是知道一些不同端口号什么的不能请求数据(这里不是很懂有机会再回顾一下看看),那接下来就是解决跨域的问题了,不多说,找到config文件夹下面的index.js文件打开加入下面一段代码

  1. proxyTable:{
  2. '/api':'http://localhost:3000/'
  3. },

至于位置的话请看下面:

第五步:到这里基本配置完成需要你重新npm run dev一下然后打开网页 http://localhost:8080/api/getNewsList 就可以看到你写的数据

这里代表你的json server启动成功

这里就是你配置的接口数据

方法二:express方法,支持get和post请求,据说更加通用,不过我还没试用,一样的方法

第一步:先找到webpack.dev.conf.js然后在头部引入express:

var express = require('express')  //这里没有写,会提示apiServer = express()这里express()未定义!!

然后在文件底部加上如下代码:

  1. //express 配置server
  2. var apiServer = express()
  3. var bodyParser = require('body-parser')
  4. apiServer.use(bodyParser.urlencoded({ extended: true }))
  5. apiServer.use(bodyParser.json())
  6. var apiRouter = express.Router()
  7. var fs = require('fs')
  8. apiRouter.route('/:apiName') //接口路径
  9. .all(function (req, res) {
  10. fs.readFile('./db.json', 'utf8', function (err, data) { //读取接口文件
  11. if (err) throw err
  12. var data = JSON.parse(data)
  13. if (data[req.params.apiName]) {
  14. res.json(data[req.params.apiName])
  15. }
  16. else {
  17. res.send('no such api name')
  18. }
  19.  
  20. })
  21. })
  22.  
  23. apiServer.use('/api', apiRouter);
  24. apiServer.listen(3000, function (err) {
  25. if (err) {
  26. console.log(err)
  27. return
  28. }
  29. console.log('Listening at http://localhost:' + 3000 + '\n')
  30. })

第二步:然后一样的要配置index.js 里面跨域的问题还有json数据的创建

同上面index.js一样的位置一样的代码

第三步:同样的访问那个链接就可以看到数据

最后,希望能对大家有所帮助,第一次写,有什么需要交流的请多指出,谢谢

vue-cli模拟后台数据交互的更多相关文章

  1. vue项目模拟后台数据

    这次我们来模拟一些后台数据,然后去请求它并且将其渲染到界面上.关于项目的搭建鄙人斗胆向大家推荐我的一篇随笔<Vue开发环境搭建及热更新> 一.数据建立 我这里为了演示这个过程所以自己编写了 ...

  2. vue mock(模拟后台数据) 最简单实例(一)——适合小白

    开发是前后端分离,不需要等待后台开发.前端自己模拟数据,经本人测试成功. 我们在根目录新建存放数据的json文件,存放我们的数据data.json //data.json{ "status& ...

  3. vue mock(模拟后台数据) +axios 简单实例(二)

    需装上axios,build文件夹中webpack.dev.conf.js文件添加上vue mock配置的东东,  如,继(一) //组件<template> <div> &l ...

  4. vue模拟后台数据,请求本地数据的配置(旧版本dev-server.js,新版本webpack.dev.conf.js)

    最近学习一个vue-cli的项目,需要与后台进行数据交互,这里使用本地json数据来模仿后台数据交互流程.然而发现build文件夹下没有dev-server.js文件了,因为新版本的vue-webpa ...

  5. mock数据(模拟后台数据)

    mock数据(模拟后台数据) - Emily恩 - 博客园 https://www.cnblogs.com/enboke/p/vue.html Mock.js http://mockjs.com/ 前 ...

  6. --@angularJS--自定义服务与后台数据交互小实例

    1.myService.html: <!DOCTYPE HTML><html ng-app="app"><head>    <title& ...

  7. --@angularJS--$http服务与后台数据交互

    1.httpBasic.html: <!DOCTYPE HTML><html ng-app="app"><head>    <title& ...

  8. express+mockjs实现模拟后台数据发送

    前言: 大多数时候,前端会和后端同时进行开发,即在我们开发完页面的时候,很可能还不能立马进入联调阶段,这个时候,为了保证我们接口的有效性和代码的功能完整,我们可能需要模拟数据. 模拟数据方法 1.通过 ...

  9. MUI框架-09-MUI 与后台数据交互

    MUI框架-09-MUI 与后台数据交互 本篇介绍使用 art-template 和原生 MUI 的数据交互 mui.ajax 来实现 我们大家都知道,想要数据交互就要有数据,每次当我们发送请求,我们 ...

随机推荐

  1. 不得不用的提高效率小技巧让你用Mac更顺手| Mac小技巧(三)

    文章内容及图片来源于:知乎,如果涉及版权问题,请联系作者删除 文章收录于:风云社区(提供上千款各类mac软件的下载) 1. 用预览给GIF删帧 我们在给文章配图或者做表情包的过程中,常需要截取 GIF ...

  2. Docker:macvlan实现容器跨主机通信 [十四]

    一.什么是macvlan 1.macvlan 本身是 linux kernel 模块,其功能是允许在同一个物理网卡上配置多个 MAC 地址, 2.即多个 interface,每个 interface ...

  3. 第九节: EF的性能篇(二) 之 Z.EntityFramework.Extensions程序集解决EF的性能问题

    一. 综述 该模块主要介绍:EF的性能优化插件Z.EntityFramework.Extensions,该插件收费. (一). 简介 1. 相关网站:http://www.zzzprojects.co ...

  4. JavaScript 正则表达式基础语法

    前言 正则表达式在人们的印象中可能是一堆无法理解的字符,但就是这些符号却实现了字符串的高效操作.通常的情况是,问题本身并不复杂,但没有正则表达式就成了大问题.javascript中的正则表达式作为相当 ...

  5. DTO/DO等POJO对象的使用场景和 orika-mapper 框架的使用

    对于项目而言, 我们一般会有DAO->Service->Controller分层设计, 这些层次体现了每层的作用, 而层次之间的数据传递对象设计很少被提及, 下面是一个相对完整的数据转换过 ...

  6. [物理学与PDEs]第2章习题13 将 $p$ - 方程组化为守恒律形式的一阶拟线性对称双曲组

    试引进新的未知函数, 将 $p$ - 方程组 $$\beex \bea \cfrac{\p \tau}{\p t}-\cfrac{\p u}{\p x}&=0,\\ \cfrac{\p u}{ ...

  7. Java部分概念理解

    第1部分 方法 1.1 方法基本概念 1) 方法:用于封装一段特定功能代码,尽可能一个方法至只实现一个基本功能,相当于C语言中的函数: 2) 方法可以多次调用: 3) 避免代码冗余,便于维护,便于团队 ...

  8. webpack学习笔记——打包后直接访问页面,图片路径错误

    我说的这种图片路径错误是这样的,运行webpack-dev-server,一切正常,没有错误.当webpack之后,直接打开index页面,报错,图片找不到,找不到的原因是路径错误. 先看我的项目代码 ...

  9. jdk生成https证书

    最近由于客户现场做“等保”,其中有一条要求我们必须使用https进行web端的请求,之前我们一直沿用的是默认的http请求,用户说不安全,唉~~局域网,一直强调安全,安全,话不多说了 我采用的使用JA ...

  10. java PDF2JPG

    import org.apache.commons.lang3.StringUtils; import org.apache.pdfbox.pdmodel.PDDocument; import org ...