Как создать сайт SPA?

Ссылка скопирована
3 ответов

смотрел на ютубе видос как сделать сайт SPA, вот сам видос - https://www.youtube.com/watch?v=yF6CQTmFlnQ&t=242s скопировал весь код с гитхаба но у меня почему то не работает, не может найти страницу хотя все в точности как в видео. Как можно решить проблему? Мне нужно сайт сделать на чистом js без фреймворка

Как создать сайт SPA?

Дополнительно:

Сначала надо понять как делать не спа

Нужен web сервер потому что, а вы просто файл открыли браузером

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Андрей PHP Ответ

Для создания сайта SPA (Single Page Application), необходимо использовать фреймворки или библиотеки, которые позволяют работать с таким типом приложений. Один из самых популярных фреймворков для создания SPA - это React.js.

Для начала создания сайта SPA с использованием React.js, вам необходимо установить Node.js и npm (Node Package Manager) на вашем компьютере. После этого вы можете создать новый проект, используя Create React App, который является удобным инструментом для быстрого создания приложений React.

Для создания нового проекта с помощью Create React App, выполните следующие шаги:
1. Откройте терминал и выполните команду `npx create-react-app my-spa-app`, где `my-spa-app` - название вашего проекта.
2. После завершения установки, перейдите в папку вашего проекта, используя команду `cd my-spa-app`.
3. Запустите приложение, выполнив команду `npm start`.

После выполнения этих шагов, вы увидите стандартное приложение React, которое будет отображаться в браузере. Теперь вы можете начать разрабатывать ваш сайт SPA, добавляя новые компоненты, роутинг, стили и другие элементы.

Для работы с роутингом в SPA, вы можете использовать библиотеку React Router, которая позволяет создавать динамические маршруты и переходы между различными страницами вашего приложения.

Пример использования React Router для создания роутинга в вашем приложении:

import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
 
function App() {
  return (
 
 
 
 
 
 
 
  );
}

import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; function App() { return ( ); }

Таким образом, создание сайта SPA с использованием React.js предполагает использование фреймворков и библиотек, которые облегчают процесс разработки и позволяют создавать динамические и отзывчивые веб-приложения.

Другие ответы (2) Ответить на вопрос
Никита Орлов

Если вы просто открываете HTML-файл двойным кликом, адрес будет вида file:///.... Для SPA это часто ломает маршрутизацию, загрузку модулей и обработку путей. Нужен локальный web-сервер, даже если проект написан на чистом JavaScript без фреймворков.

Самый простой вариант:

npx serve .

или, если установлен PHP:

php -S localhost:8080

После этого открывайте сайт как http://localhost:8080/.

Второй момент: у SPA должен быть fallback на index.html. Если вы переходите на /about, сервер не должен искать физический файл about, он должен вернуть index.html, а уже ваш JS-роутер разберёт путь.

Для чистого JS проще начать с hash-router: /#/about. Он работает даже на простом статическом сервере и не требует настройки rewrite. Когда разберётесь, можно перейти на history API и настроить серверные правила.

Роман IT

Ошибка “не может найти страницу” обычно появляется не из-за JavaScript, а из-за маршрутизации. В SPA реальных HTML-страниц для каждого URL нет. Есть один index.html, а переключение страниц делает JS.

Проверьте три вещи:

  • проект запущен через web-сервер, а не открыт как файл;
  • пути к JS/CSS написаны относительно корня корректно;
  • сервер настроен отдавать index.html для внутренних маршрутов.

Если хотите без настройки сервера, используйте hash-навигацию:

<a href="#/contacts">Контакты</a>

window.addEventListener("hashchange", renderRoute);

Если хотите красивые URL вроде /contacts, тогда нужен history API плюс rewrite на сервере. Для nginx это обычно try_files $uri $uri/ /index.html;, для Apache - правило через .htaccess. Без этого при обновлении страницы сервер будет искать физический файл и отдавать 404.

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно