当前位置: 首页 > news >正文

设计页面纸张大小/seo的优化技巧和方法

设计页面纸张大小,seo的优化技巧和方法,做网站的销售,注册网站模板有很多同学看了本系列的前几篇之后建议我暂时先不用TS,于是小肆之后将把TS换成JS继续下面的文章。今天给大家带来项目中非常重要的一环,配置Axios,一起来看看吧。axios 简介首先要明白的是axios是什么:axios是基于promise(诺言&am…
有很多同学看了本系列的前几篇之后建议我暂时先不用TS,于是小肆之后将把TS换成JS继续下面的文章。
今天给大家带来项目中非常重要的一环,配置Axios,一起来看看吧。

axios 简介

首先要明白的是axios是什么:axios是基于promise(诺言)用于浏览器和node.js是http客户端。

axios的作用是什么呢:axios主要是用于向后台发起请求的,还有在请求中做更多是可控功能。

  • 从浏览器中创建 XMLHttpRequest
  • 从 node.js 发出 http 请求
  • 支持 Promise API
  • 拦截请求和响应
  • 转换请求和响应数据
  • 取消请求
  • 自动转换JSON数据
  • 客户端支持防止 CSRF/XSRF

项目配置

首先当然还是要安装啦:

npm install axios

之后我们新建一个api文件夹用来放接口和axios的配置。
先给大家看看我配置好之后的文件夹目录结构:

8eabe06711fe7517b46a988c3e60060a.png

可以说这次配置是我划分的比较详细的配置方法了,具体每个文件都分别做什么用,我们现在来看看吧。

axios.js

这个文件主要创建axios实例并对拦截器进行配置,不理解拦截器的同学可以看看下图:

d3a72d700f4d7fece48c85f5aa748464.png
import axios from 'axios'// 创建 axios 实例
let service = axios.create({// headers: {'Content-Type': 'application/json'},timeout: 60000
})// 设置 post、put 默认 Content-Type
service.defaults.headers.post['Content-Type'] = 'application/json'
service.defaults.headers.put['Content-Type'] = 'application/json'// 添加请求拦截器
service.interceptors.request.use((config) => {if (config.method === 'post' || config.method === 'put') {// post、put 提交时,将对象转换为string, 为处理Java后台解析问题config.data = JSON.stringify(config.data)}// 请求发送前进行处理return config},(error) => {// 请求错误处理return Promise.reject(error)}
)// 添加响应拦截器
service.interceptors.response.use((response) => {let { data } = responsereturn data},(error) => {let info = {},{ status, statusText, data } = error.responseif (!error.response) {info = {code: 5000,msg: 'Network Error'}} else {// 此处整理错误信息格式info = {code: status,data: data,msg: statusText}}}
)/*** 创建统一封装过的 axios 实例* @return {AxiosInstance}*/
export default function() {return service
}

index.js

index.js文件主要封装我们几个常用的方法,get、post、put、delete

import axios from './axios'let instance = axios()export default {get(url, params, headers) {let options = {}if (params) {options.params = params}if (headers) {options.headers = headers}return instance.get(url, options)},post(url, params, headers, data) {let options = {}if (params) {options.params = params}if (headers) {options.headers = headers}return instance.post(url, data, options)},put(url, params, headers) {let options = {}if (headers) {options.headers = headers}return instance.put(url, params, options)},delete(url, params, headers) {let options = {}if (params) {options.params = params}if (headers) {options.headers = headers}return instance.delete(url, options)}
}

install.js

install.js文件可以把我们所有的api接口安装到全局,之后我们在main.js文件中导入就可以了。

import apiList from './apiList'const install = function(Vue) {if (install.installed) {returninstall.installed = trueObject.defineProperties(Vue.prototype, {$api: {get() {return apiList}}})
}export default {install
}

main.js中添加:

import api from './api/install'
Vue.use(api)

apiList.js

把我们所有的api文件夹导入到这一个文件中来。

import matches from './matches'
import user from './user'export default {matches,user
}

baseUrl.js

根据不同的环境设定不同的baseUrl,在配置这个文件前,我们先需要做如下几件事:
1.根目录新建.env.dev文件并在文件内写入NODE_ENV = 'dev'
2.在package.json文件内添加:

 "build:dev": "vue-cli-service build --mode dev","build:pre": "vue-cli-service build --mode pre",

以下是baseUrl.js的代码:

let baseUrl = '/api' // 本地代理switch (process.env.NODE_ENV) {case 'dev':baseUrl = 'http://testserver.feleti.cn/' // 测试环境urlbreakcase 'pre':baseUrl = 'https://pre-server.feleti.cn' // 预上线环境urlbreakcase 'production':baseUrl = 'https://api.feleti.cn' // 生产环境urlbreak
}export default baseUrl

matches、user

这两个文件夹都是根据api类型进行区分的,在项目以后也建议大家根据api类型划分出不同的文件存放,在小项目中这样做可能显得很麻烦,但如果项目比较大,这样做的优势就体现出来了。

我们就只看看matches文件夹下的内容:

urls.js

把一个类型下的所有url接口放入这一个文件,我只放了一个暂时,可以继续添加。

import baseUrl from '../baseUrl'
export default {matches: baseUrl + '/matches'
}

index.js

有些接口需要在header中添加token或是其他,可以按如下配置。

import api from '../index'
import urls from './urls'const header = {}export default {matches(params) {// return出去了一个promisereturn api.get(urls.matches, params, header)}
}

配置完上述全部文件就算是大功告成了,下面我们看看如何使用吧。

组件中调用

created() {this.matches()},methods: {async matches() {// 这里用try catch包裹,请求失败的时候就执行catch里的try {//定义参数对象let params = {type: 'zc'}let res = await this.$api.matches.matches(params)console.log('​getMatches -> res', res)} catch (e) {console.log('​catch -> e', e)}}}

之后我们就可以在控制台看到我们调用成功的输出日志啦:

c0bc8f75150e5fb277d16031af5ebcfd.png

小结

在实际工作中,我们尽量要把项目做的细致一些,尤其是项目开始之前的配置,今天所涉及到的很多文件在之后的配置中还会有进步的更改,比如配置用户相关的接口、配置全局loading等,大家只要能把今天的内容完全理解,之后再配置这里就很容易啦。

前置阅读:

  1. 用vue-cli3从0到1做一个完整功能手机站(一)
  2. 从0到1开发实战手机站(二):Git提交规范配置
  3. 从0到1使用VUE-CLI3开发实战(三): ES6知识储备

aa6fe69ff39262dc971647751ed5a193.png
http://www.lbrq.cn/news/1351783.html

相关文章:

  • java做网站合适吗/营销型网站建设托管
  • 网站建设的程序/海外推广代理公司
  • wordpress 木马 查/娄底seo
  • 宽屏wordpress主题/seo外链发布工具
  • 个人网站备案需要多久/线上推广方案模板
  • 模板网站优化/直播发布会
  • 一个网站2级域名多/关键词seo排名怎么选
  • 网站服务器拒绝连接/seo优化包括什么
  • 电子商务网站建设总结/发表文章的平台有哪些
  • 小型电子商务网站规划建设方案/网络营销环境分析包括哪些内容
  • wordpress网站入口/上海职业技能培训机构
  • 子目录做网站/怎样把产品放到网上销售
  • 网站建设平台网站设计/如何自己开发一个网站
  • 网上书店网站建设实训总结/如何制作自己的公司网站
  • 重庆网站关键词优化推广/推广下载
  • ps制作博客网站界面/最好用的搜索神器
  • 邢台专业网站建设公司推荐/企业专业搜索引擎优化
  • 做公众号的网站模板下载吗/搜狗收录提交入口网址
  • 做网站的的价格/谷歌seo外包
  • 山西移动网站设计/如何推广好一个产品
  • 网站从哪些方面来做/武汉官网优化公司
  • 淄博 做网站/吴江seo网站优化软件
  • 开发网站 要网站icp经营许可证吗/2024年2月疫情又开始了吗
  • 织梦做的相亲网站/seo快照推广
  • 做网站要的图片斗鱼/宁波seo哪家好
  • 四川兴昌建设有限公司网站/全自动推广引流软件
  • 万网域名怎样把淘宝网站加进去/长春网站制作推广
  • 平度那里有做网站的/自主建站
  • 一般通过山女是什么梗/优化大师官方正版下载
  • 什么网站可以做高三英语试题/网络营销推广方式包括哪几种
  • 生成式AI时代,Data+AI下一代数智平台建设指南
  • 关于时钟门控ICG的一切(与门及或门门控)
  • 2.8 ref 和 自定义指令
  • vector使用模拟实现
  • 当前主流GPU全景讲解:架构、功能与应用方向
  • 企业后端系统常用数据源类型有哪些?