vue-cli模拟后台数据交互
作为一个前端入坑的妹子,在学习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请求,据说更加通用
create: function(){
//this.$http.get('getList')//ajax请求
this.$http.post('getLisst',{userId:123})
.then(function(data){
console.log(data)//成功回调
},function(err){
console.log(err)//失败回调
})
},
上面这个是在组件中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这个文件里面,如下图代码可以直接放在该文件最下方
//这里是json-server配置信息
//json-server.js
const jsonServer = require('json-server')
const apiServer = jsonServer.create()
const apiRouter = jsonServer.router('db.json') //数据关联server,db.json与index.html同级
const middlewares = jsonServer.defaults() apiServer.use(middlewares)
apiServer.use('/api',apiRouter)
apiServer.listen(3000, () => { //监听端口
console.log('JSON Server is running')
})
第三步:配置完webpack.dev.conf.js文件之后,差不多进行了一半,配置里面看到有个db.json文件这个就是我们自己配置的数据源

这里面就是我们自己写的数据源代码
{
"getNewsList": [
{
"id": 1,
"title": "新闻条目1新闻条目1新闻条目1新闻条目1",
"url": "http://starcraft.com"
},
{
"id": 2,
"title": "新闻条目2新闻条目2新闻条目2新闻条目2",
"url": "http://warcraft.com"
},
{
"id": 3,
"title": "新闻条3新闻条3新闻条3",
"url": "http://overwatch.com"
},
{
"id": 4,
"title": "新闻条4广告发布",
"url": "http://hearstone.com"
}
]
}
第四步:然后我们看到我们监听的是3000的端口,而我们文件用的是8080的端口,这里就涉及跨域的问题,虽然不是很懂,不过还是知道一些不同端口号什么的不能请求数据(这里不是很懂有机会再回顾一下看看),那接下来就是解决跨域的问题了,不多说,找到config文件夹下面的index.js文件打开加入下面一段代码
proxyTable:{
'/api':'http://localhost:3000/'
},
至于位置的话请看下面:

第五步:到这里基本配置完成需要你重新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()未定义!!
然后在文件底部加上如下代码:
//express 配置server
var apiServer = express()
var bodyParser = require('body-parser')
apiServer.use(bodyParser.urlencoded({ extended: true }))
apiServer.use(bodyParser.json())
var apiRouter = express.Router()
var fs = require('fs')
apiRouter.route('/:apiName') //接口路径
.all(function (req, res) {
fs.readFile('./db.json', 'utf8', function (err, data) { //读取接口文件
if (err) throw err
var data = JSON.parse(data)
if (data[req.params.apiName]) {
res.json(data[req.params.apiName])
}
else {
res.send('no such api name')
} })
}) apiServer.use('/api', apiRouter);
apiServer.listen(3000, function (err) {
if (err) {
console.log(err)
return
}
console.log('Listening at http://localhost:' + 3000 + '\n')
})
第二步:然后一样的要配置index.js 里面跨域的问题还有json数据的创建
同上面index.js一样的位置一样的代码

第三步:同样的访问那个链接就可以看到数据
最后,希望能对大家有所帮助,第一次写,有什么需要交流的请多指出,谢谢
vue-cli模拟后台数据交互的更多相关文章
- vue项目模拟后台数据
这次我们来模拟一些后台数据,然后去请求它并且将其渲染到界面上.关于项目的搭建鄙人斗胆向大家推荐我的一篇随笔<Vue开发环境搭建及热更新> 一.数据建立 我这里为了演示这个过程所以自己编写了 ...
- vue mock(模拟后台数据) 最简单实例(一)——适合小白
开发是前后端分离,不需要等待后台开发.前端自己模拟数据,经本人测试成功. 我们在根目录新建存放数据的json文件,存放我们的数据data.json //data.json{ "status& ...
- vue mock(模拟后台数据) +axios 简单实例(二)
需装上axios,build文件夹中webpack.dev.conf.js文件添加上vue mock配置的东东, 如,继(一) //组件<template> <div> &l ...
- vue模拟后台数据,请求本地数据的配置(旧版本dev-server.js,新版本webpack.dev.conf.js)
最近学习一个vue-cli的项目,需要与后台进行数据交互,这里使用本地json数据来模仿后台数据交互流程.然而发现build文件夹下没有dev-server.js文件了,因为新版本的vue-webpa ...
- mock数据(模拟后台数据)
mock数据(模拟后台数据) - Emily恩 - 博客园 https://www.cnblogs.com/enboke/p/vue.html Mock.js http://mockjs.com/ 前 ...
- --@angularJS--自定义服务与后台数据交互小实例
1.myService.html: <!DOCTYPE HTML><html ng-app="app"><head> <title& ...
- --@angularJS--$http服务与后台数据交互
1.httpBasic.html: <!DOCTYPE HTML><html ng-app="app"><head> <title& ...
- express+mockjs实现模拟后台数据发送
前言: 大多数时候,前端会和后端同时进行开发,即在我们开发完页面的时候,很可能还不能立马进入联调阶段,这个时候,为了保证我们接口的有效性和代码的功能完整,我们可能需要模拟数据. 模拟数据方法 1.通过 ...
- MUI框架-09-MUI 与后台数据交互
MUI框架-09-MUI 与后台数据交互 本篇介绍使用 art-template 和原生 MUI 的数据交互 mui.ajax 来实现 我们大家都知道,想要数据交互就要有数据,每次当我们发送请求,我们 ...
随机推荐
- grafana-Admin密码重置
1)查看Grafana配置文件,确定grafana.db的路径 [paths] ;data = /var/lib/grafana [database] # For "sqlite3" ...
- 【原创】支持同时生成多个main函数 makefile 模板
背景: 去年做项目的时候,由于有需要编译出多个可执行文件的需求,修改了Makefile使其支持生成多个结果(编译多个含有main函数的文件),但总觉得自己的实现不够完美. 今年又遇到这样需求的时候,可 ...
- Geometric regularity criterion for NSE: the cross product of velocity and vorticity 1: $u\times \om$
在 [Chae, Dongho. On the regularity conditions of suitable weak solutions of the 3D Navier-Stokes equ ...
- EffectiveC++ 第6章 继承与面向对象设计
我根据自己的理解,对原文的精华部分进行了提炼,并在一些难以理解的地方加上了自己的"可能比较准确"的「翻译」. Chapter 6 继承与面向对象设计 Inheritance and ...
- luoguo 1306 斐波那契公约数
这题难度不大,主要是小结论:斐波那契第n项和第m项公约数就是第gcd(n,m)项 大概能猜出来,毕竟斐波那契数列反过来实在太像计算公约数的步骤了 日后填坑证明吧
- Centos 05 系统目录讲解
本节内容 1.linux目录结构 2.主目录功能简介 3.重要子目录 linux目录结构 在linux里面,逻辑上所有目录只有一个顶点,根是所有目录的起点. 根下面是类似一个倒挂的树一样的层次结构 可 ...
- pygame学习点滴
pygame分为四块 引用/ 初始化/ 事件处理/ 窗口刷新 普通版壁球游戏 """ 引用部分 """ import pygame, sys ...
- pythonのdjango初体验
简单的一个列表展示,实现了增.删.插 1.通过新建项目来创建一个Django项目 2.通过pycharm中的Terminal来创建app ,命令如下: python manage.py start ...
- 第三周 数据分析之概要 Pandas库数据特征分析
数据的排序: 数据的基本统计分析 : 数据的累计统计分析: 数据的相关分析: 单元小结
- 第二周 数据分析之展示 Matplotlib基础绘图函数实例
Pyplot基础图表函数 Pyplot饼图的绘制: Pyplot直方图的绘制: Pyplot极坐标图的绘制: Pyplot散点图的绘制: 单元小结: import numpy as np import ...