Cosmic JS - потрясающая система управления контентом с возможностью категоризации и распределения данных в удобном для вас виде. При создании экспозиционного сайта в образовательных целях необходимо отображать большое количество текста, изображений,
видео и прочего. В этом руководстве мы узнаем, как использовать возможности Cosmic JS CMS для простого отображения, отслеживания и обновления больших объемов данных.

TL;DR

Демонстрация сайта Scholastic
Посмотреть код на GitHub

Что мы будем строить:

вступление

Поскольку на этом сайте есть много статей, которые помогут вам начать работу с Cosmic JS, в этом руководстве предполагается, что вы имеете базовое понимание того, как работает Cosmic JS. См. Руководство по началу работы.

Поскольку Cosmic JS - это CMS, ориентированная на API, ее исключительно легко установить и запустить - вам просто нужно сделать простой асинхронный вызов в Vue. В ходе этого руководства вы сможете увидеть, насколько просто разделить данные и обновить их с помощью Cosmic JS CMS.

Установка и настройка нашего проекта:

В этом руководстве мы будем использовать интерфейс командной строки и NPM Vue для установки Cosmic JS и быстрой и удобной настройки нашего проекта. Мы также можем установить Vuex, чтобы использовать его глобальный магазин:

$ npm install -g vue-cli
$ vue init webpack cosmic-game
$ cd cosmic-game
$ npm install --save vuex cosmicjs
$ npm install
$ npm run dev

При желании мы также можем добавить Bootstrap (и его зависимости от jQuery и popper.js) в наш проект, чтобы использовать некоторый заранее написанный CSS для организации наших макетов:

$ npm install bootstrap jquery popper.js

Если вы решили добавить Bootstrap в свой проект, после запуска npm install вам также необходимо импортировать его в main.js:

import 'bootstrap'; import 'bootstrap/dist/css/bootstrap.min.css';

Загрузка данных об активах в Cosmic JS:

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

Во-первых, нам нужно создать Bucket для нашего проекта. Как только это будет сделано, мы сможем использовать некоторые уникальные свойства, которые предлагает Cosmic JS, для разделения наших данных. Поскольку сайт, создаваемый в этом руководстве, ориентирован на нашу Солнечную систему, давайте добавим новый тип объекта под названием «Космические ресурсы». Объект Cosmic Assets будет нести ответственность за содержание информации, изображений и других активов о жителях нашей Солнечной системы. Например, если бы я хотел добавить некоторую информацию о планете Юпитер - я бы пошел в тип объекта «Космические активы» и создал новый космический актив с именем «Юпитер».

Теперь у нас есть Космический Актив, который может содержать любые данные, которые мы хотим привязать к планете Юпитер. Мы можем добавлять изображения Юпитера, давать экспозиционные данные и даже быстро перечислять лакомые кусочки информации, используя метаполе ввода текста, предоставляемое CMS.

Возможность разбить данные наших Cosmic Assets на поле контента, метаполе изображения и метаполе ввода текста позволяет очень легко взглянуть на CMS и понять, где каждый фрагмент данных отображается в нашем приложении Vue.js.

Настройка нашего приложения:

Поскольку наша солнечная система содержит так много объектов, мы должны использовать свойство v-for, которое Vue предлагает нам для их обхода. Это предотвращает повторение нашего кода для каждого небесного объекта и позволяет нам использовать всю мощь компонентного проектирования.

В этом проекте мы используем три компонента:

Первый компонент, который в нашем проекте называется Homescreen.vue, отвечает за рендеринг всего. Он вызывает и получает данные, которые мы добавили в Cosmic JS CMS, и использует их для рендеринга нашего приложения.

Второй компонент, упоминаемый в нашем проекте как CosmicAsset.vue, представляет собой краткое введение в небесный объект. На нем отображается небольшое изображение и название небесного объекта. При нажатии на этот компонент отображается следующий компонент: CosmicPage.vue.

CosmicPage.vue отображает полноэкранный компонент, который предоставляет подробную информацию о конкретной сущности. В нем есть большой экспозиционный абзац, несколько забавных фактов и другая информация, такая как размер и расстояние от Земли.

Доступ к загруженным данным из Cosmic JS в нашем приложении Vue.JS

Мы можем использовать Cosmic JS API для доступа к данным, которые мы загрузили в CMS. Во-первых, нам нужно инициализировать Bucket, в котором хранится наш проект. Мы делаем это, сначала создавая экземпляр Cosmic JS в нашем компоненте, а затем используя обещание для возврата данных из конкретного Bucket, который нам нужен. Затем мы можем изменить информацию и добавить ее в качестве свойства объекта данных нашего компонента Vue. Мы вызываем Cosmic JS API в свойстве mount () жизненного цикла Vue, чтобы необходимая нам информация была доступна сразу после монтирования компонента (ов):

Обработка наших компонентов на основе доступных данных:

Как вы можете видеть выше, мы находим нужный сегмент, получаем из него загруженные данные и изменяем его так, как мы хотим. Мы фильтруем объекты по данным и определяем, являются ли они космическими объектами или простым контентом, который должен отображаться на странице.

Теперь у нас есть наши космические объекты, хранящиеся в массиве в свойстве данных cosmicAssetObjs объекта Vue. Используя этот массив, мы можем использовать v-for Vue для циклического просмотра и рендеринга нашего компонента CosmicAsset. Мы можем разбить каждый из этих компонентов с помощью классов Boostrap, чтобы они отображались в сетке:

Как видите, мы используем свойство v-for для циклического просмотра нашего массива. Для каждого элемента, который мы проходим в цикле, мы передаем этот конкретный элемент как свойство для использования компонентом. Мы можем увидеть, как используются реквизиты, посмотрев на сам компонент (ы):

Как видите, мы берем информацию о конкретной небесной сущности в форме объекта и фильтруем ее, чтобы отобразить то, что мы хотим.

Заключение

В этом руководстве мы загрузили большой объем данных в Cosmic JS, чтобы мы могли создать образовательное приложение, которое обучает тому, что есть в нашей Солнечной системе. Используя Cosmic JS API, мы могли легко и беспрепятственно получать доступ к этим данным.

Cosmic JS - это легкая платформа с чрезвычайно мощной CMS.

Если у вас есть какие-либо комментарии или вопросы о создании приложений с помощью Cosmic JS, напишите нам в Twitter и присоединитесь к разговору в Slack.