1.38.0setQueryParam
یک پارامتر query را در URL یا query string تنظیم یا جایگزین میکند و بخش hash را حفظ میکند.
setQueryParam(url, key, value):stringنحوه عملکرد
تابع ابتدا بخش hash را جدا میکند، query را با URLSearchParams پردازش میکند، کلید مشخصشده را با مقدار ارائهشده تنظیم میکند و سپس نتیجه را دوباره میسازد.
تنظیم یا جایگزینی
اگر کلید مشخصشده از قبل وجود داشته باشد، URLSearchParams.set() مقدار آن را جایگزین میکند. اگر وجود نداشته باشد، یک پارامتر جدید اضافه میشود.
حفظ Hash
بخش hash قبل از پردازش query جدا میشود و بدون تغییر به نتیجه نهایی اضافه میشود.
پشتیبانی از URL و Query String
تابع هم رشتههای شبیه URL و هم query stringها را پشتیبانی میکند. اگر علامت سؤال وجود نداشته باشد و ورودی شامل slash نباشد، ورودی مستقیماً بهعنوان query در نظر گرفته میشود.
کدگذاری URL
serialize کردن query مطابق رفتار native URLSearchParams انجام میشود و شامل encode کردن کاراکترهای خاص در کلیدها و مقادیر است.
پارامترها
urlstringالزامیURL، query string یا رشتهای شبیه URL که باید تغییر کند.
keystringالزامینام پارامتر query که باید تنظیم شود.
valuestringالزامیمقدار رشتهای که باید به پارامتر query اختصاص داده شود.
مقدار بازگشتی
stringURL یا query string تغییریافته را با تنظیم پارامتر مشخصشده و حفظ بخش hash برمیگرداند.
مثالها
اضافه کردن پارامتر
اضافه کردن یک پارامتر query جدید به URL.
import { setQueryParam } from "@cyref/js";
setQueryParam(
"https://example.com/products",
"page",
"2",
);
// "https://example.com/products?page=2"جایگزین کردن پارامتر
جایگزین کردن مقدار یک پارامتر query موجود.
setQueryParam(
"https://example.com/products?page=1&sort=latest",
"page",
"2",
);
// "https://example.com/products?page=2&sort=latest"حفظ Hash
هنگام تنظیم پارامتر query، بخش hash بدون تغییر باقی میماند.
setQueryParam(
"https://example.com/products?page=1#details",
"page",
"2",
);
// "https://example.com/products?page=2#details"ورودی Query String
میتوان query string را مستقیماً و بدون مسیر URL ارسال کرد.
setQueryParam(
"?page=1&sort=latest",
"page",
"2",
);
// "?page=2&sort=latest"کدگذاری URL
مقدار پارامتر مطابق رفتار URLSearchParams serialize میشود.
setQueryParam(
"https://example.com/search",
"q",
"hello world",
);
// "https://example.com/search?q=hello+world"