One function, so that two platforms cannot disagree about it. They did: an HTTP event keyed on the
pathname alone while a browser event keyed on the pathname and the query string, so a server
render of /tasks?page=2 stored its data under GET|/tasks and the browser hydrating the same
page looked for GET|/tasks?page=2 and found nothing. The page then refetched, silently, on every
URL that carried a query.
The query is part of the identity, because /tasks?page=2 and /tasks?page=3 are two pages with
two sets of data. The origin is not: the same route served from two hosts is the same route.
Parameters
method: string
The method the event arrived with.
url: URL
The URL the event arrived at.
extra: string[] = []
Anything else that narrows the identity, such as a client's own details.
The identity of an event that carries a URL.
One function, so that two platforms cannot disagree about it. They did: an HTTP event keyed on the pathname alone while a browser event keyed on the pathname and the query string, so a server render of
/tasks?page=2stored its data underGET|/tasksand the browser hydrating the same page looked forGET|/tasks?page=2and found nothing. The page then refetched, silently, on every URL that carried a query.The query is part of the identity, because
/tasks?page=2and/tasks?page=3are two pages with two sets of data. The origin is not: the same route served from two hosts is the same route.