ForgejComponent
sk

jComponent

Smerovanie stránok v prehliadači bez opätovného načítania

jComponent 20 · jcomponent@20 jcomponentfrontendroutingspa Spustené s jComponent 20

jComponent má vlastný router pre jednostránkové aplikácie. ROUTE(url, fn) zaregistruje trasu: segmenty {name} sa odovzdajú do fn ako argumenty v poradí. REDIRECT(url) zmení adresu pomocou History API (bez načítania stránky) a spustí zodpovedajúcu trasu. Trasy sa porovnávajú segment po segmente: trasa a URL musia mať rovnaký počet segmentov a * sa zhoduje s ľubovoľnou hodnotou na svojej pozícii. NAV popisuje aktuálnu polohu: NAV.url je cesta, NAV.query spracovaný query string a NAV.params argumenty trasy. NAV.back() a NAV.forward() sa pohybujú v histórii, ktorú jComponent uchováva.

Pre server je to stále jedna stránka, takže každá URL pod vašou aplikáciou musí vrátiť ten istý HTML (ROUTE('GET /*'), ktorá vykreslí kostru), inak by opätovné načítanie na /users/5/ skončilo chybou 404.

public/index.html
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8" />
	<title>jComponent</title>
	<link rel="stylesheet" href="//cdn.componentator.com/spa.min@20.css" />
	<script src="//cdn.componentator.com/spa.min@20.js"></script>
</head>
<body>

	<h1 id="title"></h1>

	<script>

		ROUTE('/', function() {
			$('#title').text('Home');
		});

		ROUTE('/users/{id}/', function(id) {
			$('#title').text('User ' + id);
		});

		ROUTE('/files/*', function() {
			$('#title').text('Files');
		});

	</script>

</body>
</html>
Vyskúšajte to vo svojom prehliadači

Upravte príklad a spustite ho. Beží v izolovanom ráme vo vašom prehliadači; na náš server sa nič neposiela.

Náhľad