Aurelia - Enrutamiento
El enrutamiento es una parte importante de todas las aplicaciones. En este capítulo, aprenderá a usar el enrutador en el marco de Aurelia.
Paso 1: crear páginas
Ya hemos creado una carpeta de componentes en uno de los capítulos anteriores. Si aún no lo ha creado, debe colocarlo dentro delsrc carpeta.
C:\Users\username\Desktop\aureliaApp\src>mkdir components
Dentro de esta carpeta, crearemos home y about directorios.
C:\Users\username\Desktop\aureliaApp\src\components>mkdir home
C:\Users\username\Desktop\aureliaApp\src\components>mkdir about
Dentro de home carpeta, necesitamos crear view y view-model archivos.
C:\Users\username\Desktop\aureliaApp\src\components\home>touch home.js
C:\Users\username\Desktop\aureliaApp\src\components\home>touch home.html
También necesitamos view y view-model para about página.
C:\Users\username\Desktop\aureliaApp\src\components\about>touch about.js
C:\Users\username\Desktop\aureliaApp\src\components\about>touch about.html
Note - También puede crear todas las carpetas anteriores manualmente.
Paso 2 - Páginas
A continuación, debemos agregar un código predeterminado a los archivos que creamos.
home.html
<template>
<h1>HOME</h1>
</template>
home.js
export class Home {}
about.html
<template>
<h1>ABOUT</h1>
</template>
about.js
export class About {}
Paso 3 - Enrutador
Nosotros crearemos view-model para router dentro app.js archivo.
app.js
export class App {
configureRouter(config, router) {
config.title = 'Aurelia';
config.map([
{ route: ['','home'], name: 'home',
moduleId: './components/home/home', nav: true, title:'Home' },
{ route: 'about', name: 'about',
moduleId: './components/about/about', nav: true, title:'About' }
]);
this.router = router;
}
}
Nuestro enrutador view será colocado en app.html.
app.html
<template>
<nav>
<ul>
<li repeat.for = "row of router.navigation">
<a href.bind = "row.href">${row.title}</a>
</li>
</ul>
</nav>
<router-view></router-view>
</template>
Cuando ejecutemos la aplicación, podremos cambiar las rutas haciendo clic en home o sobre enlaces.