最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue 項(xiàng)目中的this.$get,this.$post等$的用法案例詳解

 更新時(shí)間:2022年12月10日 09:47:22   作者:jjw_zyfx  
vue.js的插件應(yīng)該暴露一個(gè)install方法。這個(gè)方法的第一個(gè)參數(shù)是vue構(gòu)造器,第二個(gè)參數(shù)是一個(gè)可選的選項(xiàng)對象,首頁要安裝axios,本文結(jié)合案例代碼給大家詳細(xì)講解vue 中的this.$get,this.$post等$的用法,一起學(xué)習(xí)下吧

vue官網(wǎng)上有這么一句話

vue.js的插件應(yīng)該暴露一個(gè)install方法。這個(gè)方法的第一個(gè)參數(shù)是vue構(gòu)造器,第二個(gè)參數(shù)是一個(gè)可選的選項(xiàng)對象:

注意要首先安裝axios 即

npm install axios -S

結(jié)合案例:

//  基于axios 封裝的http請求插件
const axios = require('axios');
 
/**
 * 以下這種方式需要調(diào)用Vue.use方法 調(diào)用的時(shí)候調(diào)用 this.$fetch, this.$post, this.$axios, this.$put, this.$del 方法
 */
function coverFormData (data) {
  return Object.keys(data).map(key => {
    let value = data[key];
    if (typeof value === 'object') {
      value = JSON.stringify(value);
    }
    return encodeURIComponent(key) + '=' + encodeURIComponent(value);
  })
}
const http = {
  install(Vue, Option) {
    axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
    if (Option) {
      // 超時(shí)設(shè)置
      axios.defaults.timeout = Option.timeout || 10000;
      // 默認(rèn)請求地址設(shè)置
      axios.defaults.baseURL = Option.baseURL || "";
      // 頭部設(shè)置
      if (Option.headers && typeof Option.headers === 'object') {
        for (let key in Option.headers) {
          if (!Option.headers.hasOwnProperty(key)) continue;
          axios.defaults.headers[key] = Option.headers[key];
        }
      }
      // 請求/響應(yīng)攔截器
      Option.inRequest && axios.interceptors.request.use(Option.inRequest, error => {
          Promise.reject(error);
      });
      Option.inResponse && axios.interceptors.response.use(Option.inResponse, error => {
          Promise.reject(error);
      });
    }
    /**
     * @param  {string} url
     * @param  {object} params={}  參數(shù)可以根據(jù)需要自行處理
     */
    const fetch = (url, params = {}, config = {}) => {
      const str = coverFormData(params).join('&');
      return new Promise((resolve, reject) => {
        let address = url;
        if (str) {
          address += '?' + str;
        }
        axios.get(address, config).then(res => {
          resolve(res.data);
        }).catch(error => {
          reject(error);
        });
      });
    };
 
    /**
     * @param  {string} url
     * @param  {object} data={} 參數(shù)可以根據(jù)需要自行處理
    
     */
    const post = (url, data = {}, config = {}) => {
      let str = coverFormData(data).join('&');
      if (config.headers && config.headers['Content-Type'] && config.headers['Content-Type'].indexOf('application/json') > -1) {
        str = JSON.parse(JSON.stringify(data));
      }
      return new Promise((resolve, reject) => {
        axios.post(url, str, config).then(res => {
          resolve(res.data);
        }).catch(error => {
          reject(error);
        });
      });
    };
 
    /**
     * @param  {string} url
     * @param  {object} data={} 參數(shù)可以根據(jù)需要自行處理
     */
    const put = (url, data = {}, config = {}) => {
      const str = coverFormData(data).join('&');
      return new Promise((resolve, reject) => {
        axios.put(url, str, config).then(res => {
          resolve(res.data);
        }).catch(error => {
          reject(error);
        });
      });
    };
 
    /**
     * @param  {string} url
     * @param  {object} params={}
     */
 
    const del = (url, config = {}) => {
      const str = coverFormData(config).join('&');
      return new Promise((resolve, reject) => {
        axios.delete(url, str).then(res => {
          resolve(res.data);
        }).catch(error => {
          reject(error);
        });
      });
    };
    const data = { axios, fetch, post, put, del };
    // 這個(gè)地方說明了為啥使用的時(shí)候是this.$fetch, this.$post, this.$axios, this.$put, this.$del 這幾個(gè)方式
    Object.keys(data).map(item => Object.defineProperty(Vue.prototype, '$' + item, { value: data[item] }));
  }
};
 
export default http;

 然后在main.js中導(dǎo)入包使用:

import http from './assets/js/http';
 
Vue.use(http, {
    timeout: 60000,
    inRequest (config) {
        config.headers['Authorization'] =
            sessionStorage.getItem('TokenType') +" "
            + sessionStorage.getItem('AccessToken');
        return config;
    }, 
    inResponse (response) {
        return response;
    }
});

 之后在子組件中就可以直接使用this.$post等了

比如:

this.$post("你的url", {
        CityId: cityid,
        Type: 3
      })
        .then(res => {
          if (res.Success) {
            this.searchSecondary = res.Data;
          }
        })
        .catch(error => {
          console.log(error);
        });

注意:this.$get是用this.$fetch代替的例如:

this.$fetch("你的url", {
 
    })
      .then(res => {
        console.log(res)
      })
      .catch(error => {
        console.log(error);
      });

到此這篇關(guān)于vue 項(xiàng)目中的this.$get,this.$post等$的用法案例詳解的文章就介紹到這了,更多相關(guān)vue 中的this.$get,this.$post等$的用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue?export?default中的name屬性有哪些作用

    Vue?export?default中的name屬性有哪些作用

    這篇文章主要介紹了Vue?export?default中的name屬性有哪些作用,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • vue移動(dòng)端時(shí)彈出側(cè)邊抽屜菜單效果

    vue移動(dòng)端時(shí)彈出側(cè)邊抽屜菜單效果

    這篇文章主要介紹了vue移動(dòng)端時(shí)彈出側(cè)邊抽屜菜單,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • 基于Vue實(shí)現(xiàn)微信小程序的圖文編輯器

    基于Vue實(shí)現(xiàn)微信小程序的圖文編輯器

    這篇文章主要介紹了基于Vue實(shí)現(xiàn)微信小程序的圖文編輯器,由于微信小程序不能使用常規(guī)的圖文編輯器(比如百度的UEditor )編輯新聞內(nèi)容之類的,所以用vue寫了個(gè)針對小程序用的圖文編輯器需要的朋友可以參考下
    2018-07-07
  • vue實(shí)現(xiàn)前端列表多條件篩選

    vue實(shí)現(xiàn)前端列表多條件篩選

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)前端列表多條件篩選,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • vue.config.js完整配置教程

    vue.config.js完整配置教程

    這篇文章主要為大家介紹了vue.config.js的完整配置教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • vue 全局封裝loading加載教程(全局監(jiān)聽)

    vue 全局封裝loading加載教程(全局監(jiān)聽)

    這篇文章主要介紹了vue 全局封裝loading加載教程(全局監(jiān)聽),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 詳解Vue項(xiàng)目在其他電腦npm run dev運(yùn)行報(bào)錯(cuò)的解決方法

    詳解Vue項(xiàng)目在其他電腦npm run dev運(yùn)行報(bào)錯(cuò)的解決方法

    這篇文章主要介紹了詳解Vue項(xiàng)目在其他電腦npm run dev運(yùn)行報(bào)錯(cuò)的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • vue3中markRaw示例詳解

    vue3中markRaw示例詳解

    markRaw是將一個(gè)對象標(biāo)記為普通對象,而toRaw是將reactive對象變?yōu)槠胀▽ο?在 Vue 3 中,markRaw 是一個(gè)用于告訴 Vue 的響應(yīng)性系統(tǒng)不要對某個(gè)對象進(jìn)行轉(zhuǎn)換或追蹤其響應(yīng)性的函數(shù),下面給大家介紹vue3中markRaw詳解,感興趣的朋友一起看看吧
    2024-04-04
  • vue3.x中apollo的使用案例代碼

    vue3.x中apollo的使用案例代碼

    這篇文章主要介紹了vue3.x中apollo的使用,通過前端自身直接獲取到apollo的配置目前看到官方支持的客戶端是沒有vue的,本文給大家介紹了前端獲取到apollo數(shù)據(jù)的過程,需要的朋友可以參考下
    2023-02-02
  • vue項(xiàng)目如何實(shí)現(xiàn)Echarts在label中獲取點(diǎn)擊事件

    vue項(xiàng)目如何實(shí)現(xiàn)Echarts在label中獲取點(diǎn)擊事件

    這篇文章主要介紹了vue項(xiàng)目如何實(shí)現(xiàn)Echarts在label中獲取點(diǎn)擊事件,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10

最新評論

普宁市| 洪江市| 剑阁县| 巴马| 宁远县| 东兴市| 久治县| 夏河县| 哈尔滨市| 宁德市| 日土县| 太仓市| 虞城县| 凤山市| 旅游| 瓦房店市| 泾阳县| 民丰县| 泸水县| 梅河口市| 嫩江县| 依兰县| 吴忠市| 静宁县| 民丰县| 新乡县| 阳东县| 琼结县| 鹤壁市| 辽宁省| 延长县| 曲松县| 兴城市| 定兴县| 白朗县| 溧水县| 吴忠市| 龙井市| 桃园县| 曲周县| 景泰县|