В этом руководстве мы создадим интерфейс с использованием VueJS для нашего Forem Backend, который поддерживает веб-сайт dev.to
В предыдущем руководстве мы клонировали Forem’s Repo на GitHub и разместили его в Google Cloud. Мы также создали несколько API, чтобы мы могли использовать информацию, хранящуюся в его бэкэнде.
В этом руководстве мы создадим новый интерфейс с использованием VueJ и будем использовать эти недавно созданные API.
Что будем строить
Разработаем следующий сайт: - https://simplecoding.dev/
Предварительные условия
Предполагается, что вы знаете основы
- API
- Интерфейс командной строки VueJS
- Бутстрап 4
На вашем компьютере должно быть установлено следующее программное обеспечение
- НПМ
- Node.js
- Хороший редактор (рекомендуется JetBrains WebStorm / IntelliJ IDEA / MS Visual Studio Code)
- Хороший браузер (рекомендуется Google Chrome)
Смотреть это
Если вы хотите посмотреть это руководство, а не читать его, вы можете посмотреть его здесь. В следующем видео сначала объясняется код серверной части, а затем - клиентская часть.
Давайте код
Пришло время запачкать руки и начать писать код для нашего интерфейса.
ШАГ 1. Установите Vue Cli
- Используйте следующую команду для установки VueCLI на свой компьютер -
npm install -g @vue/cli
- Создайте новый проект Vue, используя следующую команду -
vue create frontend
. Это создаст новый каталог с именемfrontend
со следующей структурой каталогов
ШАГ 2. Создайте компонент для отображения статьи
- Давайте создадим компонент, который может отображать каждую статью. Этот компонент будет извлекать содержимое статьи из API с помощью ярлыка, который будет присутствовать в URL-адресе.
- Для получения данных (в нашем случае - всей статьи) из API воспользуемся библиотекой axios. Вы можете установить axios с помощью
npm install axios --save
- Каждая статья также требует раздела комментариев, где читатели могут оставлять комментарии. Для этого воспользуемся API disqus. Вы должны создать учетную запись на их веб-сайте и сгенерировать ключ для своего приложения, прежде чем продолжить это руководство.
- Если вы читали предыдущее руководство, то знаете, что наш API возвращает объект JSON с атрибутом
processed_html
. Этот атрибут содержит HTML-код статьи. Теперь, поскольку наша статья содержит суть, этот HTML-код также будет иметь тег скриптов. Эти скрипты не будут выполняться, потому что VueJS - это интерфейсный фреймворк, и эти скрипты будут загружены в DOM после того, как браузер завершит выполнение кода VueJS. Следовательно, нам нужно выполнить скрипт вручную. Для этого мы будем использовать модуль узла под названием postscribe. Вы можете установить подписку с помощьюnpm install postscribe --save
- Вы можете вставить следующий код в
/src/components/Article.vue
ШАГ 3. Создайте список, чтобы увидеть все статьи и теги
- Мы должны отобразить список всех статей в нашем интерфейсе. Для этого мы сначала создадим компонент под названием
ArticleCard.vue
. Этот компонент будет представлять каждую статью в списке. - Вставьте следующий код в
/src/components/cards/ArticleCard.vue
- Так выглядит каждая ArticleCard
- Теперь мы создадим новый компонент под названием
ArticleList.vue
. В этом компоненте мы создадим список изArticleCard
компонентов. Вставьте следующий код в/src/components/lists/ArticleList.vue
- Теперь мы создадим еще один компонент с именем
TagCard.vue
. Он будет использоваться для отображения каждого тега в списке тегов. Вставьте следующий код в/src/components/cards/TagCard.vue
- Так выглядит каждая карточка тега
ШАГ 4.1. Создание представлений - панель навигации
- До сих пор мы создавали только компоненты для приложения VueJS. Теперь мы создадим представления, используя эти компоненты.
- Сначала мы создадим панель навигации с помощью Bootstrap 4. Вставьте следующий код в
/public/index.html
- Вот как выглядит Navbar: -
ШАГ 4.2. Создание представлений - Домашняя страница
- Теперь мы создадим домашнюю страницу нашего веб-сайта. На главной странице мы будем отображать логотип нашего веб-сайта и иметь ссылки на четыре тега - Algorithms, FrontEnd, BackEnd и DevOps.
- Вставьте следующий код в
/src/views/HomePageView.vue
- Так будет выглядеть наша домашняя страница
ШАГ 4.3. Создание представлений - Просмотр всех статей
- Теперь мы создадим представление, в котором будем отображать список всех статей. Мы будем использовать компоненты
ArticleCard.vue
иArticleLists.vue
. - Вставьте следующий код в
/src/views/AllArticlesView.vue
- Так будет выглядеть
All Articles
страница
ШАГ 4.4. Создание представлений - просмотр всех тегов
- Мы создадим представление, в котором будут отображаться все теги. В этом представлении мы будем использовать компонент
TagCard.vue
. Вставьте следующий код в/src/views/TagListView.vue
- Список тегов будет выглядеть так
- Теперь мы создадим другое представление, в котором мы будем отображать все статьи, содержащие конкретный тег. Мы будем повторно использовать компонент
ArticleList.vue
. - Вставьте следующий код в
/src/views/TagArticlesView.vue
ШАГ 4.5. Создание представлений - просмотры тегов главной страницы
- Мы добавили ссылки на четыре тега на главной странице. Теперь мы создадим страницы, на которых будут отображаться все статьи, связанные с этими тегами.
- Вставьте следующий код в
/src/component/views/FrontendHomePage.vue
- Вставьте следующий код в
/src/component/views/AlgorithmsHomePage.vue
- Вставьте следующий код в
/src/component/views/BackendHomePage.vue
- Вставьте следующий код в
/src/component/views/DevopsHomePage.vue
Это оно
Поздравляем с завершением обучения. Вы просто узнаете, как использовать серверную часть Forem, немного ее настроите и создадите для нее отдельный интерфейс. Вы можете найти полный код интерфейса в этом репозитории GitHub.