Query Parameter
Query parameter dapat digunakan untuk passing data antar halaman ataupun untuk memudahkan user dalam copy paster sebuah konten. sehingga page yang dikirimkan masih sama seperti user yang melakukan sharing
dan berikut beberapa method yang digunakan untuk mmanimulasi query
Get parameter pada react router dom v5
import { useLocation } from "react-router-dom";
const { search } = useLocation();
const query = new URLSearchParams(search);
console.log(query.get("name_query_paramater"));
delete query parameter
import { useLocation } from "react-router-dom";
const { search } = useLocation();
const query = new URLSearchParams(search);
query.delete("name_query_paramater");
Set query parameter
import { useHistory } from "react-router-dom";
const history = useHistory();
history.replace({
search: "?query=value",
});
alternative lain bisa menggunakan class new URLSearchParams
import { useLocation } from "react-router-dom";
const { search } = useLocation();
const query = new URLSearchParams(search);
query.set("name_query_paramater", "value_parameter");
import { useLocation } from "react-router-dom";
const { search } = useLocation();
const query = new URLSearchParams(search);
query.append("name_query_paramater", "value_parameter");
Query parameter react-router-dom v6
untuk version 6 react-router-dom sudah dibekali dengan hook sendiri yaitu useSearchParams()
tip
Dilain kasus, kadang developer mau mendapatkan semua value dari query. untuk itu perlu menambahkan baris kode berikut
import { useLocation } from "react-router-dom";
const { search } = useLocation();
const query = new URLSearchParams(search);
let params = {};
for (let value of query.keys()) {
params[value] = params.get(value);
}
dengan begini semua value query akan menjadi satu. atau bisa di buat menjadi kustom hook