步骤八、代理服务器的配置
这个功能主要是我们在调试接口的时候使用,因为当我们运行npm run dev 的时候,实际上我们的项目已经挂载在一个本地服务端运行了,端口号为我们配置的8080,当我们想在该项目下访问服务端接口数据的时候,就会产生跨域的问题,这个时候,我们就需要使用到proxy代理我们的数据请求,在vue-cli中已有配置相关的代码,我们仅需要把对应的代理规则写进去即可,这里以一个通用配置例子实现;
首先,我们在fetch文件夹下新建一个config.js的文件,用于存放我们的代理路径配置:
const url = 'http://www.dayilb.com/';
let ROOT;
if (process.env.NODE_ENV === 'production') {
//生产环境下的地址
ROOT = url;
} else {
//开发环境下的代理地址,解决本地跨域跨域,配置在config目录下的index.js dev.proxyTable中
ROOT = "/"
}exports.PROXYROOT = url; //代理指向地址
exports.ROOT = ROOT;
接下来,我们要在config目录下新建一个proxyConfig.js,存放代理服务器的配置规则:
var config= require("../src/fetch/config");
module.exports = {
proxy: {
[config.ROOT]: { //需要代理的接口,一般会加前缀来区分,但我个人是没加,即‘/'都转发代理
target: config.PROXYROOT, // 接口域名
changeOrigin: true, //是否跨域
pathRewrite: {
[`^/`]: '' //需要rewrite的,针对上面的配置,是不需要的
}
}
}
}最后,我们在config目录下的index.js文件中,引入我们的代理规则,并在,即
var proxyConfig=require('./proxyConfig')
...//省略号表示省略其他代码
module.exports = {
...
proxyTable: proxyConfig.proxy,
...
}重新启动项目,我们就可以做到代理转发来实现跨域请求了。
步骤九、vuex状态管理引入
终于,来到了最后一步,那就是我们的状态管理vuex,其实这个东西不是说所有项目都需要引入,看项目的具体需求,但需要对同一个数据源进行大量的操作的时候,建议使用,如果每个组件的数据都可以轻易的在data中管理,那其实是没必要引进去的,该管理工具是更友好的解决了组件间传值的问题,包括了兄弟组件;
首先,我们需要安装vuex,老规矩就是
npm install vuex安装完成后,我们需要对我们的项目进行一些修改,首先是我们的目录,我们需要src下新增一个store文件夹作为vuex数据存放位置,在开始搭建前,我们需要有vuex的相关知识,我就不一一说明,自行百度一下vuex官方文档;众所周知,vuex有state,getter,mutation,action等关键属性,state主要是用于存放我们的原始数据结构,类似与vue的data,不过它是全局的,getter类似于计算属性computed,mutation主要用于触发修改state的行为,actions 也是一种触发动作,只不过与mutation的区别在于异步的操作我们只能在action中进行而不能在mutation中进行,目的是为了浏览器更好的跟踪state中数据的变化。










