ウィーチャットの小さいプログラム:flyioのmpvueの中の実践


JavaScriptのすべての実行環境をサポートするPromiseベースのサポート要求転送、強力なhttpリクエストライブラリです.コード多重化は、複数の端末で可能な限り可能です.Fly.jsはpromiseに基づく軽量で強力なJavascript httpネットワークライブラリです.
  • は、統一Promise APIを提供する.
  • ブラウザ環境では、軽量で非常に軽量です.
  • は複数のJavaScriptの実行環境をサポートしています.
  • は、要求/応答ブロックをサポートする.
  • はJSONデータを自動変換する.
  • は、下側のHttp Engineの切り替えをサポートしています.様々な運転環境に簡単に適応できます.
  • ブラウザ端末はグローバルAjaxブロッキングをサポートします.
  • H 5ページが元のAPPに埋め込まれている場合、http要求をNativeに転送することができます.直接要求画像をサポートします.
  • 公式文書から:Flyio文書
    設定
    まずflyioをインストールし、コマンドを通じて:
    npm install flyio
    
    mpvueに導入され、プロジェクトbuild -> webpack.base.conf.jsに以下のようなファイルが追加される.
      resolve: {
        extensions: ['.js', '.vue', '.json'],
        alias: {
          'vue': 'mpvue',
          '@': resolve('src'),
          flyio: "flyio/dist/npm/wx"    <----------       , flyio    。
        },
        symlinks: false,
        aliasFields: ['mpvue', 'weapp', 'browser'],
        mainFields: ['browser', 'module', 'main']
      },
    
    その後、flyioを使用すると、臭くて長い経路を書く必要がなく、そのままflyioを使用します.request.jsにおいて、
    import Fly from 'flyio' //   flyio
    const fly = new Fly()  
    
    要求の設定
    要求構成は、flyconfigによって設定されてもよく、例えば、いくつかの汎用構成は以下のようにしてもよい.
    //      
    fly.config.timeout = 10000 //   
    fly.config.baseURL = global.BASEURL //    ,        。
    fly.config.params = {} //       
    fly.config.headers = {'Content-Type': 'application/json'} //      
    
    要求ブロック
    Flyサポート要求/応答ブロックは、要求の開始前と応答データの受信後にいくつかの前処理を行うことができる.
    const urlWhitelist = ['/token']
    //      
    fly.interceptors.request.use((request)=>{
    	//        ,  :
    	//      header
    	//         
    	if (urlWhitelist.includes(request.url)) {
    		//        
    	}
          //      
          console.log(request.body)
          //    
          //var err=new Error("xxx")
          //err.request=request
          //return Promise.reject(new Error(""))
    
        //      request,       ,              request
        return request;
    })
    
    応答ブロック
    //       ,       then/catch      
    fly.interceptors.response.use(
        (response) => {
            //       data    
            //        ,  :                  。
            return response.data
        },
        (err) => {
            //            
            //return Promise.resolve("ssss")
        }
    )
    
    参照
    Flyioドキュメント