ForgejComponent
hu

jComponent

Oldalak útválasztása a böngészőben újratöltés nélkül

jComponent 20 · jcomponent@20 jcomponentfrontendroutingspa Futtatva a jComponent 20-szal

A jComponentnek saját routere van az egyoldalas alkalmazásokhoz. A ROUTE(url, fn) egy útvonalat regisztrál: a {name} szegmensek sorrendben argumentumként kerülnek az fn-hez. A REDIRECT(url) a History API-val módosítja a címet (oldalbetöltés nélkül), és lefuttatja az illeszkedő útvonalat. Az útvonalakat szegmensenként hasonlítja össze: egy útvonalnak és egy URL-nek ugyanannyi szegmensből kell állnia, a * pedig a helyén bármely értékre illeszkedik. A NAV az aktuális helyet írja le: a NAV.url az útvonal, a NAV.query a feldolgozott query string, a NAV.params pedig az útvonal argumentumai. A NAV.back() és a NAV.forward() a jComponent által vezetett előzményekben mozog.

A szerver számára ez továbbra is egyetlen oldal, ezért az alkalmazásod alatti minden URL-nek ugyanazt a HTML-t kell visszaadnia (egy ROUTE('GET /*'), amely a vázat rendereli), különben az /users/5/ oldalon az újratöltés 404-et adna.

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>
Próbáld ki a böngésződben

Szerkeszd a példát, és futtasd. A böngésződ egy izolált keretében fut; semmi nem kerül a szerverünkre.

Előnézet