Я учусь использовать Routify для подключения некоторых маршрутов и ссылок. Мне нужна помощь.
В документации Routify написано:
«Ссылки могут обрабатываться множеством различных способов. Это может быть самый простой способ».
через : https://routify.dev/guide/navigation
Затем он дает следующий пример:
<script>
import {isActive, url} from '@sveltech/routify'
const links =
[
['./index', 'Home'], //add index if you don't want siblings to be considered children
['./blog', 'Blog'],
['./about', 'About'],
['./contact', 'Contact']
]
</script>
<style>
.active {font-weight: bold}
</style>
<ul>
{#each links as [path, name]}
<!-- Svelte magic. If isActive is true, the "active" class is applied. -->
<li class:active={$isActive(path)}>
<a href={$url(path)}>
{name}
</a>
</li>
{/each}
</ul>
К сожалению, он не дает никаких инструкций о том, как подключить это к вашему приложению (если это слишком сложно для меня, чтобы понять).
Я использую шаблон Routify и скопировал приведенный выше код в следующий каталог:
pages / _components / Navigation .svelte
Затем я попытался импортировать его в pages / index.svelte следующим образом:
pages / index.svelte
<script>
import Navigation from './_components/Navigation.svelte';
</script>
<div>
<Navigation/>
</div>
Ссылки отображаются вверху страницы. Когда я нажимаю на них, конечная точка следует этому шаблону:
http://localhost:5000/index/home
http://localhost:5000/index/blog
http://localhost:5000/index/about
http://localhost:5000/index/contact
В моем каталоге / pages у меня есть страницы, которые соответствуют страницам, указанным в коде, например:
/ pages / Home.svelte
Когда я нажимаю ссылки, мой браузер остается на той же странице и не встраивает страницу, связанную со ссылкой. Кроме того, инструменты разработчика моего браузера говорят:
Uncaught Error: Route could not be found for "/index/home".
at urlToRoute (urlToRoute.js:15)
at updatePage (navigator.js:13)
at pushstate (navigator.js:60)
at History.history.<computed> [as pushState] (navigator.js:51)
Что мне нужно сделать, чтобы я мог видеть соответствующие страницы, и почему их промежуточный каталог называется "index"? Как мне избавиться от слова "индекс" в URL-адресе?
ОБНОВЛЕНИЕ
Хорошо, у меня есть навигация, указанная на всех страницах и частично работающая.
У меня есть код навигации (ниже) импортировано в pages / _layout.svelte .
Код выглядит следующим образом:
pages / _layout.svelte
<script>
import Navigation from './_components/Navigation.svelte';
</script>
<!--TABS-->
<Navigation/>
pages / _components / Navigation.svelte
<script>
import {isActive, url} from '@sveltech/routify'
const links =
[
['./index', 'Home'], //add index if you don't want siblings to be considered children
['./form', 'Form']
]
</script>
<style>
.active {font-weight: bold}
</style>
<ul>
{#each links as [path, name]}
<!-- Svelte magic. If isActive is true, the "active" class is applied. -->
<li class:active={$isActive(path)}>
<a href={$url(path)}>
{name}
</a>
</li>
{/each}
</ul>
Ссылки навигации появляются, но теперь проблема в том, что содержимое выбранной страницы не отображается.
На изображении ниже отображается конечная точка формы. Компонент формы работает HTML, но HTML не отображается на странице.
Я также получаю предупреждение в моих инструментах разработчика, в котором говорится: «получил неожиданный слот» по умолчанию
введите описание изображения здесь