URL 擴充
RenderJS 為 URL.prototype 加入的請求、瀏覽紀錄與 query string 方法。
URL
原始碼:src/prototype/URL.ts
| 方法/屬性 | 說明 |
|---|---|
url.$queryAll |
解析後的 query string 物件 |
url.$image |
回傳預先載入該 URL 圖片的 Promise |
url.$$200(isImg = false) |
fetch 該 URL;若回應為圖片,轉換為 object-URL blob({ src, img }),除非是 SVG 且 isImg 為假 |
url.$req(body, once = false) |
fetch 封裝:JSON 或 FormData body(透過 body.json/body.files/body.tag)、自訂 header/credentials、以共用 Map(以 URL 為 key)去重請求、自動 JSON/文字回應解析,4xx/5xx 時以回應文字 reject |
url.$$query(key) |
searchParams.get(key) |
url._history(title?) |
對此 URL 執行 pushState,記錄至記憶體中的歷史堆疊,可選擇同步設定 document.title |
url._query(obj) |
回傳一個新 URL,將 obj 的鍵合併進現有 query string |
url.__history(title?) |
對此 URL 執行 replaceState(同步更新歷史堆疊) |
url.__query(obj) |
回傳一個新 URL,query string 整個由 obj 取代 |
url.query_(keys) |
回傳一個新 URL,移除指定的鍵(單一或陣列) |
url.query__() |
回傳一個新 URL,query string 已清空 |
範例
const result = await "/api/x".$req({
method: "POST",
json: { key: "value" },
header: { "X-Token": "..." }
});