Vue结合vue-recoure、http-proxy-middleware、vuex和prom,如何构建长尾词的智能系统?
- 内容介绍
- 文章标签
- 相关推荐
本文共计465个文字,预计阅读时间需要2分钟。
使用vue+init+webpack+你的项目名称初始化一个vue项目,安装依赖npm install vue-resource http-proxy-middleware vuex koa。在main.js中引入并注册下载的依赖,并注册vue-resource到vue实例。
使用vue init webpack 你的项目名称初始化一个vue的项目
- 安装依赖
npm install vue-resource 127.0.0.1:9000"); }); //对koa框架不是熟悉的可以使用express框架 如果使用express框架拿代理就不用使用前面那样复杂的写法了 const express = require("express"); const proxy = require("127.0.0.1:3000", changeOrigin: true, })) app.listen(9000, (err) => { if (err) return console.log(err); console.log("app as running at 127.0.0.1:9000"); })代理配置好以后就可以写请求方法了,在创建好的store文件夹下面的actions文件里编写请方法
//导入Vue import Vue from "vue" export default { //测试接口 testInterface({},postdata) { //postdata是你调用的时候传过来的参数可以更具需求拼接接口 //let ipstr = `/api/text?id=${postdata.id}`; //return Vue.http.get(ipstr,{}).then(response => { return Vue.http.get("/api/text",{}).then(response => { if (response.status == 200) { return new Promise(response.body); } else { return new Promise(response.data.message); } }) } }
测试代理是否成功
<div id="app"> <button @click="clickF">按钮</button> </div>
首先在script标签里面将vuex导入进来
import {mapActions} from "vuex";在methods中创建一个方法用来发送请求,并在methods的最下面使用结构函数将我们存在vuex中的请求方法按需导入
methods: { clickF() { this.testInterface().then(data=> { console.log(data); }) }, ...mapActions(["testInterface"]) }
直接使用this.方法名就可以访问到vuex中的actions方法;这里使用的是辅助函数,也可以使用原始方法
在终端中使用node 启动脚本文件的名称 或者使用 nodemon 启动脚本文件的名称
在浏览器中打开服务的地址点击我们创建的按钮查看请求接口
可以看到我们的代理是请求成功的;状态之所以是304是因为第二次请求的时候如果请求没有发生改变就会使用浏览器缓存;
上面遗留了一个bug就是这个方法只适用于build后的项目;在开发中每次都build无疑浪费了很多时间,下面就来在开发环境中使用服务器代理的方式完成跨域请求
如果是cli创建的项目直接在config文件夹下面的index文件中的proxyTable进行添加就可以了
本文共计465个文字,预计阅读时间需要2分钟。
使用vue+init+webpack+你的项目名称初始化一个vue项目,安装依赖npm install vue-resource http-proxy-middleware vuex koa。在main.js中引入并注册下载的依赖,并注册vue-resource到vue实例。
使用vue init webpack 你的项目名称初始化一个vue的项目
- 安装依赖
npm install vue-resource 127.0.0.1:9000"); }); //对koa框架不是熟悉的可以使用express框架 如果使用express框架拿代理就不用使用前面那样复杂的写法了 const express = require("express"); const proxy = require("127.0.0.1:3000", changeOrigin: true, })) app.listen(9000, (err) => { if (err) return console.log(err); console.log("app as running at 127.0.0.1:9000"); })代理配置好以后就可以写请求方法了,在创建好的store文件夹下面的actions文件里编写请方法
//导入Vue import Vue from "vue" export default { //测试接口 testInterface({},postdata) { //postdata是你调用的时候传过来的参数可以更具需求拼接接口 //let ipstr = `/api/text?id=${postdata.id}`; //return Vue.http.get(ipstr,{}).then(response => { return Vue.http.get("/api/text",{}).then(response => { if (response.status == 200) { return new Promise(response.body); } else { return new Promise(response.data.message); } }) } }
测试代理是否成功
<div id="app"> <button @click="clickF">按钮</button> </div>
首先在script标签里面将vuex导入进来
import {mapActions} from "vuex";在methods中创建一个方法用来发送请求,并在methods的最下面使用结构函数将我们存在vuex中的请求方法按需导入
methods: { clickF() { this.testInterface().then(data=> { console.log(data); }) }, ...mapActions(["testInterface"]) }
直接使用this.方法名就可以访问到vuex中的actions方法;这里使用的是辅助函数,也可以使用原始方法
在终端中使用node 启动脚本文件的名称 或者使用 nodemon 启动脚本文件的名称
在浏览器中打开服务的地址点击我们创建的按钮查看请求接口
可以看到我们的代理是请求成功的;状态之所以是304是因为第二次请求的时候如果请求没有发生改变就会使用浏览器缓存;
上面遗留了一个bug就是这个方法只适用于build后的项目;在开发中每次都build无疑浪费了很多时间,下面就来在开发环境中使用服务器代理的方式完成跨域请求
如果是cli创建的项目直接在config文件夹下面的index文件中的proxyTable进行添加就可以了

