精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

今天不聊中間層,我們來聊聊中間頁

開發 架構
平常代碼編程中我們會碰到一些交互問題 or 團隊間的合作問題,需要處理鏈接跳轉之間的問題,假如我們作為提供方,需求方來自不同的業務團隊,甚至有時來自第三方。當然不僅限于此,還有很多令人腦殼疼的場景,這時候我們可以提供一個中間頁作為對接橋梁,在此頁面去攬下所有對接的活。

[[438007]]

本文轉載自微信公眾號「微醫大前端技術」,作者黃琴。轉載本文請聯系微醫大前端技術公眾號。

背景

平常代碼編程中我們會碰到一些交互問題 or 團隊間的合作問題,需要處理鏈接跳轉之間的問題,假如我們作為提供方,需求方來自不同的業務團隊,甚至有時來自第三方。當然不僅限于此,還有很多令人腦殼疼的場景,這時候我們可以提供一個中間頁作為對接橋梁,在此頁面去攬下所有對接的活。但針對過渡頁的合理使用和一些注意事項,我這里想單獨拎一篇小文章出來說說,繼續看看吧。

使用場景

1: 不確定的多方業務方或者不同渠道業務方

假如我們作為提供方,會面對不同的業務方,一部分來自于不同的協作團隊,一部分來自不同的渠道(微信、小程序、app),這時候中間頁就該上場了,由它來負責,主要根據 query 參數去做跳轉邏輯處理,負責跳到具體的目標頁 A、B、C 等等。目標頁理應來說只負責該頁面具體的邏輯,不該外攬下其他的臟活,下圖為簡易版場景圖。

![1901638101967_.pic](/Users/huangqin/Library/Containers/com.tencent.xinWeChat/Data/Library/Application Support/com.tencent.xinWeChat/2.0b4.0.9/a301252f4cfd6c12512699071071e4d7/Message/MessageTemp/9e20f478899dc29eb19741386f9343c8/Image/1901638101967_.pic.jpg)

思路:在中間頁你可以針對不同的 query 去做處理,目標頁放在 targetUrl,在處理對應的邏輯結束之后,跳轉到目標頁。這時候用戶其實是無感知的,如下是簡易版 code。

注意:我們作為提供方,最好能能提供一個標準模版,例如 appid 專門用來區分來源,來源的定義盡可能標準化,targetUrl 用來存在跳轉 url,跳轉到中間頁 token 處理,都是需要提前定義好的,這些 query 參數基本是統一的。so 最好是能對外提供一份對接文檔,注釋盡可能詳細(包括 code 中), 這樣避免自己踩坑(排查問題 or 撕逼。。。我太難了)

  1. // 這里例舉一個數組,假如針對 query 需要處理的邏輯 
  2. const fnList = [ 
  3.   ['appid''handleAppid'], 
  4.   ['token''handleToken'], 
  5.   ['payUrl''handlePayUrl'], 
  6.   ['sourceId''handleSourceId'], 
  7.   ... 
  8. ]; 
  9.  
  10. mounted() { 
  11.     this.handleQuery(); 
  12.   // 處理完跳轉到目標頁志華,跳轉到目標頁 target 
  13.     if (this.query.target) { 
  14.       location.replace(this.query.target); 
  15.     } 
  16. }, 
  17.  
  18. // 具體的 handleQuery 操作 
  19. handleQuery() { 
  20.     // 這里你可能有一些前置處理 
  21.      ...... 
  22.      // 對 query 進行處理 
  23.       fnList.forEach(([key, fn]) => { 
  24.         if (this.query[key] && this[fn]) { 
  25.           this[fn](); 
  26.         } 
  27.       }); 
  28. }, 

2: 同一業務方但有定制化需求的場景

聽起來和第一種場景很像,但是有差啦。假如作為提供方,都是同一個對接方,但走的模式不同,導致后續業務流程不一樣。拿圖片中的例子來說,目標頁是根據類型前置不同的目標頁面,這里 query 的參數會根據 type 的不同,會攜帶和其 type 對應的業務參數,這種提供的目標頁是一樣的,但參數會依賴業務自身需求而定。

![1941638105158_.pic](/Users/huangqin/Library/Containers/com.tencent.xinWeChat/Data/Library/Application Support/com.tencent.xinWeChat/2.0b4.0.9/a301252f4cfd6c12512699071071e4d7/Message/MessageTemp/9e20f478899dc29eb19741386f9343c8/Image/1941638105158_.pic.jpg)

簡易版 code 如下:

  1. // 根據 type 類型區別業務來源 
  2. checkType(type) { 
  3.  return this.query.type === type; 
  4. }, 
  5.      
  6. mounted() { 
  7.   // 可能有一些前置操作 
  8.   ...... 
  9.     this.handleQuery(); 
  10. }, 
  11.  
  12. // 具體的 handleQuery 操作 
  13. handleQuery() { 
  14.     // 這里你可能有一些前置處理 
  15.      ...... 
  16.       
  17.      // 來自服務包,需要帶上 sourceId 參數 
  18.       if (this.checkType('serverPack')) { 
  19.         const newQuery = { 
  20.           sourceId: query.sourceId, 
  21.           ... 
  22.         }; 
  23.         this.$router.replace({ 
  24.           name'orderServerPackConfirm'
  25.           query: newQuery, 
  26.         }); 
  27.         return
  28.       } 
  29.        
  30.      // 來自 XXX 的信息,需要將 osTokenId 帶到確認頁 
  31.      if (this.checkType('pcDetail')) { 
  32.         confirmQuery.osTokenId = this.query.osTokenId; 
  33.      } 
  34.       
  35.      // 其他 
  36.      ..... 
  37.  
  38.       this.$router.replace({ 
  39.         name'orderConfirm'
  40.         query: confirmQuery, 
  41.       }); 
  42. }, 

3: 處理跨域請求或參數需要由接口提供的情況

前面兩種情況不論是 1or2,基本上我們說的是由 query 顯性傳遞,但是也會有部分場景我們可能不再適用,如下

1:參數過多 or 或者對應的某個參數值過大不適用 query 的方式傳遞,采用接口調用方式,由中間頁自行獲取其中必要的參數即可。

2: A 應用跳到 B 應用,此時兩個應用存在跨域問題,A 需要調用某接口,內容值存在 cookie/storage 中,需要將其內容傳送到 B 應用中使用。應對這種情況,可以在跳轉到 B 應用的過程中加一個前置跳轉中間頁,這時 A 只負責跳轉到中間頁,將其調用的接口入參傳入到中間頁,在中間頁去請求接口,這是內容值就可以穩定存儲在 B 應用中了。

簡易版 code 如下:

  1. // 校驗 query 需要 
  2. checkQuery(keys = []) { 
  3.       return keys.every((key) => !!this.query[key]); 
  4.  }, 
  5.  
  6. // 根據 type 類型區別業務來源 
  7. checkType(type) { 
  8.  return this.query.type === type; 
  9. }, 
  10.  
  11. mounted() { 
  12.   // 可能有一些前置操作 
  13.   ...... 
  14.     this.handleQuery(); 
  15. }, 
  16.  
  17. // 具體的 handleQuery 操作 
  18. handleQuery() { 
  19.     // 這里你可能有一些前置處理 
  20.      ...... 
  21.       
  22.      // 商詳 
  23.       if (this.checkType('detail') && this.checkQuery(['skuId''quantity'])) { 
  24.        // 接口在中間頁去請求 
  25.         data = await this.directBuy({ 
  26.           skuId: +query.skuId, 
  27.           quantity: +query.quantity, 
  28.         }); 
  29.       } 
  30.  
  31.       // 購物車 
  32.       if (this.checkType('cart') && this.checkQuery(['shopcartId'])) { 
  33.       // 接口在中間頁去請求 
  34.         data = await this.submitCart({ shopcartids: JSON.parse(query.shopcartId) }); 
  35.       } 
  36.       
  37.      // 其他 
  38.      ..... 
  39.  
  40.       this.$router.replace({ 
  41.         name'orderConfirm'
  42.         query: confirmQuery, 
  43.       }); 
  44. }, 

使用中間頁的一些注意點

1: 不要濫用中間頁

中間頁在某些業務場景下確實能幫我們解決一部分的邏輯抽離問題,至少面對以上幾種場景不用再去擔心某些情況下給哪個業務方爸爸去提供不同的目標頁,但是我們還是要根據項目中實際情況去評估使用一個中間頁的必要性,至少我們應該保持著:必要性、業務耦合度、可擴展性的角度去理性編碼,濫用中間頁后期可能就會出現中間頁到中間頁的跳轉(不同開發可能寫了跳轉頁邏輯,已經是個公共的頁面),由于文檔不清晰或者更新不及時等原因,反而可能后期維護性成本更大,這是我們需要注意的一個問題。

2: 對于必要性的中間頁盡量往標準化處理

對于 query 上的公有參數例如來源 appid,統一好格式 h5 環境下 : p_h5_XXX, app 渠道下:p_app_XXX, 小程序環境下:p_miniPorgram_XXX,其他參數也類似,定義好統一標準

對于 query 上的必要參數例如目標 targetUrl,若提供的 url 不存在,提供標準化的報錯處理

對于豐富多樣化的參數來源,有必要的情況下,可放在服務端去處理,對外提供一個可配置化接口

3: 要有安全意識,針對 targetUrl 做好防漏洞處理,避免不可預期的 XSS 攻擊等

中間頁要考慮到 targetUrl 的安全漏洞,尤其是不需要登錄的中間頁,假如黑客發送某個鏈接,欺騙用戶點擊看起來是公司的福利界面鏈接,誘騙用戶點擊,用戶會毫無防范的點擊跳轉至虛假界面,則容易騙取用戶的相關信息,這是我們需要在加中間頁額外考慮的事情,可以對 targetUrl 加上白名單限制。

總結

 

以上就是我在我們項目中使用過的一些中間頁的一些總結吧,希望碰到有類似業務的小伙伴一點收獲,當然這只是我目前遇到的一些情況,還有我沒想到和沒涉及到的,歡迎提出你們寶貴的建議,就醬紫吧~

黃琴:一枚前端妹子,愛笑、愛運動、愛音樂、愛旅行

 

責任編輯:武曉燕 來源: 微醫大前端技術
相關推薦

2021-04-01 10:05:28

nodejs前端服務器

2019-01-30 08:14:28

協議區塊鏈堆棧

2024-08-08 14:50:00

模型數據

2024-02-21 08:19:54

2021-02-11 08:21:02

中間件開發CRUD

2009-07-30 13:07:49

ASP.NET中的三層

2022-09-19 08:01:13

美團Leaf發號

2023-10-24 07:50:18

消息中間件MQ

2017-11-27 06:01:37

數據庫中間件中間層

2019-01-28 09:32:30

跳槽員工程序員

2024-11-25 07:00:00

RedisMySQL數據庫

2023-03-03 12:37:50

JavaJVM內存溢出

2016-11-01 20:26:47

前端模板underscoreWeb

2020-06-11 11:36:49

線程池Java場景

2018-02-07 10:24:01

Nginx服務器架構

2022-01-04 20:34:00

數據安全Relay

2015-01-12 09:33:27

WAN

2025-04-29 09:10:00

2025-02-27 09:49:32

2023-03-07 15:58:31

云數據庫云存儲
點贊
收藏

51CTO技術棧公眾號

国产成人亚洲综合色影视| 亚洲人成精品久久久| 亚洲情趣在线观看| 成人资源视频网站免费| 久久激情免费视频| 首页亚洲中字| 欧美日韩国产a| xxxxxx在线观看| 五月婷婷免费视频| 免费久久99精品国产| 欧美成人网在线| 黑人精品xxx一区| 欧美黑人一级爽快片淫片高清| 人妻av一区二区| www.一区| 五月天国产精品| 婷婷久久伊人| 人妻妺妺窝人体色www聚色窝| 日韩电影一区二区三区| 色在人av网站天堂精品| 黄免费在线观看| 99国产精品免费网站| 日本久久一区二区| 成人免费在线网| 免费网站免费进入在线| 91视频.com| av激情久久| 中文字幕av网站| 一本一道久久综合狠狠老精东影业| 色yeye香蕉凹凸一区二区av| 95视频在线观看| 999精品嫩草久久久久久99| 色婷婷精品久久二区二区蜜臀av| 欧美亚洲色图视频| 秋霞午夜理伦电影在线观看| 久久久久国产精品人| 91超碰在线免费观看| 一级黄色片免费| 丝袜美腿亚洲综合| 7777精品视频| 久久免费黄色网址| 亚洲天天影视网| 中文字幕日韩精品有码视频| 熟妇高潮精品一区二区三区| eeuss国产一区二区三区四区| 欧美日韩一区二区三区四区五区| 日本www在线播放| 91福利在线尤物| 亚洲精品视频观看| 7777在线视频| 黄色成年人视频在线观看| 日本一二三四高清不卡| 欧美美乳视频网站在线观看| 天天干视频在线| 成人国产视频在线观看| 国产91亚洲精品一区二区三区| 国产又粗又大又黄| 久久99精品久久久久婷婷| 国产精品成人免费视频| 天天爽夜夜爽人人爽| 亚洲欧美日本视频在线观看| 91产国在线观看动作片喷水| 91国产丝袜播放在线| 一本色道88久久加勒比精品| 性欧美长视频免费观看不卡| 国产免费av一区二区| 在线日韩电影| 性色av一区二区三区在线观看| 久久影院一区二区| 国产精品久久久久久模特| 5278欧美一区二区三区| 国产精品尤物视频| 免费观看在线综合色| 成人福利网站在线观看| 国产精品日韩无码| 国产福利一区二区三区视频| 国产精品swag| 天堂av在线资源| 久久九九99视频| 亚洲日本精品国产第一区| 蜜桃视频在线观看免费视频网站www| 国产精品成人免费| 日韩精品一区二区三区四| а√天堂资源官网在线资源| 欧美性猛交xxxx| 妺妺窝人体色www在线观看| 四虎永久精品在线| 欧美xxxx老人做受| 37p粉嫩大胆色噜噜噜| 日韩国产欧美| 久久久久国产精品免费| 国产剧情在线视频| 黑人巨大精品欧美黑白配亚洲| 99久久久久国产精品免费| 天天躁日日躁狠狠躁喷水| 国产日韩v精品一区二区| 自拍偷拍一区二区三区| av在线网页| 欧美视频一区二区三区在线观看| 国产九九九视频| 亚洲自拍电影| 欧美成人精品一区二区| 国产一级免费视频| 韩国欧美国产1区| 精品久久久久久一区| 女女色综合影院| 欧美日韩国产一区二区| 国产女同无遮挡互慰高潮91| 欧美日韩一区二区三区在线电影| 色阁综合伊人av| 国产又大又黑又粗免费视频| 久久aⅴ国产欧美74aaa| 农村寡妇一区二区三区| 亚洲精品白浆| 欧美三级电影网| 国产 中文 字幕 日韩 在线| 中文字幕日韩一区二区不卡 | aaa日本高清在线播放免费观看| 亚洲精品成人天堂一二三| 精品一卡二卡三卡| 福利欧美精品在线| 欧美噜噜久久久xxx| 亚洲精品91天天久久人人| av电影在线观看完整版一区二区| 7777在线视频| 亚洲精品成人一区| 国产一区二区日韩| 91精品国产乱码在线观看| 国产精品香蕉一区二区三区| 亚洲欧美一区二区原创| 亚洲精品国产精品国产| 亚洲国产成人一区| 免费在线观看av网址| 国内成人精品2018免费看| 视频二区一区| 欧美羞羞视频| 亚洲欧美一区二区激情| 三级黄色在线视频| av电影在线观看不卡| 国产一区二区四区| 亚洲精品国产九九九| 免费av一区二区| 91在线精品入口| 中文av字幕一区| 成年网站在线播放| 日韩精品午夜| 国产精品入口夜色视频大尺度| 国内三级在线观看| 在线视频你懂得一区| 国产特黄级aaaaa片免| 99国产精品| 精品视频免费观看| 免费毛片b在线观看| 日韩成人av网址| 好看的av在线| 国产午夜精品在线观看| 激情综合网俺也去| 超碰成人久久| 成人黄色免费片| 26uuu亚洲电影在线观看| 91精品国产综合久久精品麻豆| 手机在线免费看毛片| 国产制服丝袜一区| wwwwww欧美| 国产精品xxx在线观看| 国模私拍一区二区三区| 人妻精品一区二区三区| 高跟丝袜一区二区三区| 欧美人妻一区二区三区| 美国一区二区三区在线播放| 欧美性受黑人性爽| 国产精品极品在线观看| 欧美中文字幕在线| 99精品老司机免费视频| 欧美高清www午色夜在线视频| 乱h高h女3p含苞待放| 成人激情文学综合网| 91视频 -- 69xx| 欧美日韩在线二区| 4444kk亚洲人成电影在线| 久久男人天堂| 色久欧美在线视频观看| 空姐吹箫视频大全| 91国内精品野花午夜精品| 中文字幕五月天| 97精品国产露脸对白| 日日摸天天爽天天爽视频| 66视频精品| 久久久久久久有限公司| 韩日一区二区| 九九热视频这里只有精品| 亚洲欧美综合在线观看| 欧美精品丝袜中出| 国产成人免费观看视频 | 欧洲性视频在线播放| 亚洲精品www| 91精品国产综合久| 五月天网站亚洲| 东京热无码av男人的天堂| 风间由美性色一区二区三区| 免费在线观看的毛片| 黄色av一区| 亚洲成人在线视频网站| 国产精东传媒成人av电影| 国产精品一区二区三区毛片淫片 | www.国产福利| 99riav1国产精品视频| 亚洲综合第一| 牲欧美videos精品| 亚洲va男人天堂| 日韩新的三级电影| 欧美激情在线狂野欧美精品| 第一福利在线| 日韩精品在线电影| 丰满人妻一区二区三区四区53| 欧美在线观看视频一区二区| 日韩av在线天堂| 亚洲视频免费观看| 黄色三级生活片| 91在线观看视频| 波多野结衣在线免费观看| 天堂成人免费av电影一区| 真实国产乱子伦对白视频| 欧美oldwomenvideos| 欧美日韩免费精品| 久久亚州av| 成人情视频高清免费观看电影| 欧美天堂一区二区| 国产精品99免视看9| 日本在线啊啊| 97视频免费观看| 国产www视频在线观看| www.亚洲免费视频| 91精品国产91久久久久游泳池 | 淫片在线观看| 永久免费精品影视网站| 每日更新av在线播放| 日韩av网站在线| 性xxxx18| 日韩大片在线观看视频| 欧美一级淫片免费视频魅影视频| 日韩午夜在线影院| 国产丰满美女做爰| 欧美一区二区在线免费播放| 国产精品久久久久久无人区| 欧美日韩三级视频| 在线观看毛片网站| 欧美日韩国产在线播放网站| 在线观看av大片| 欧美日韩视频不卡| 91成人在线免费| 91精品国产综合久久精品性色| 国产伦精品一区二区三区四区| 欧美日韩国产精选| 国产理论视频在线观看| 欧美一级夜夜爽| 精品国产一级片| 欧美成人精精品一区二区频| 超碰在线观看av| 精品成a人在线观看| 免费看黄色一级视频| 亚洲国产精品久久久久秋霞蜜臀 | 成人毛片老司机大片| 在线xxxxx| 久久影院视频免费| 毛片视频免费播放| 亚洲女人小视频在线观看| 国产精品白嫩白嫩大学美女| 亚洲综合男人的天堂| 亚洲精品在线观看av| 欧美日韩精品国产| 波多野结衣人妻| 欧美日韩国产片| 精品欧美在线观看| 日韩精品视频在线观看网址| 国产一级在线观看| 久久精品视频在线观看| 乱插在线www| 欧美综合一区第一页| 国产精品天堂蜜av在线播放| 91久久精品在线| 精品福利一区| 五月天婷亚洲天综合网鲁鲁鲁| 国产国产精品| 国产午夜大地久久| 免费成人小视频| 精品国产aⅴ一区二区三区东京热| av激情亚洲男人天堂| 九九热免费在线| 一区二区在线观看免费视频播放| www.日本精品| 在线不卡中文字幕| 香蕉视频网站在线| 久久精品国产2020观看福利| 99色在线观看| 成人网在线免费观看| 精品亚洲免a| 一区二区三区四区视频在线| 亚洲高清资源| 污污网站在线观看视频| 成人激情动漫在线观看| 91大神福利视频| 欧美日韩国产精品| a级片在线播放| 亚洲视频第一页| 日韩三级电影视频| 国产精品偷伦免费视频观看的| 99ri日韩精品视频| 伊人久久大香线蕉精品| 男女精品视频| 韩国黄色一级片| 国产精品国产三级国产普通话蜜臀 | 久久99影视| 777久久精品一区二区三区无码| 视频一区视频二区中文| 性一交一黄一片| 国产精品久久一级| 中文字幕精品无| 亚洲福利影片在线| jizz性欧美| 国产精品女视频| 亚洲婷婷伊人| 欧洲精品一区二区三区久久| 国产真实乱子伦精品视频| 99久久精品免费视频| 精品国产老师黑色丝袜高跟鞋| 国产精品无码一区二区桃花视频| 亚洲人在线观看| 蜜桃视频在线网站| 国产精品有限公司| 国产综合视频| 自拍一级黄色片| 中文字幕中文乱码欧美一区二区| 国产剧情在线视频| 国产丝袜精品视频| 性爽视频在线| 黑人中文字幕一区二区三区| 欧美女人交a| 国产大学生av| 一区二区免费在线播放| 精品国产一级片| 欧美成人在线免费| 狂野欧美xxxx韩国少妇| 国产卡一卡二在线| 精品一区二区日韩| 亚洲综合久久av一区二区三区| 欧美日韩性生活| 欧美成年黄网站色视频| 国产有码在线一区二区视频| 四虎8848精品成人免费网站| 亚洲欧美国产日韩综合| 国产精品网站一区| 一级做a爰片久久毛片16| 日韩中文字幕免费看| 日日夜夜一区| 性欧美18一19内谢| 国产麻豆精品在线| 日韩欧美中文字幕视频| 日韩一区二区在线看片| 日皮视频在线观看| 精品蜜桃传媒| 久久福利精品| 国产精品无码无卡无需播放器| 欧美三级电影在线观看| 国产一二区在线| 国产伦精品一区二区三区照片91 | 神马久久一区二区三区| 韩国一区二区av| 国产精品毛片大码女人| 国产精品特级毛片一区二区三区| 久久av红桃一区二区小说| 日韩一区二区三区色| 人人干视频在线| 国产日产亚洲精品系列| 国产毛片毛片毛片毛片| 欧美精品第一页在线播放| 亚洲动漫在线观看| 999在线观看| 亚洲444eee在线观看| 黄色片视频在线观看| 成人免费网站在线看| 伊人久久大香线蕉综合热线| 一区二区不卡免费视频| 欧美久久久久免费| segui88久久综合9999| 日本黑人久久| 国产一区 二区 三区一级| 日韩三级视频在线播放| 深夜成人在线观看| 91嫩草精品| 久久久精品麻豆| 亚洲午夜久久久久久久久久久| 欧美日韩激情视频在线观看| 91麻豆精品一二三区在线| 50度灰在线观看| 国产婷婷色一区二区三区在线| 国产丝袜在线视频| 青青久久av北条麻妃黑人| 88国产精品视频一区二区三区| 性久久久久久久久久|