Статьи

Как создать пользовательские компоненты, используя компонентный ввод-вывод

В статье « Введение в компонентный ввод-вывод» описано, как вы можете использовать готовые компоненты на любом сайте независимо от используемой системы управления контентом, языков или технологий. Преимущества включают в себя:

  • сотни готовых, привлекательных и настраиваемых компонентов на выбор, включая блоки контента, галереи, панели навигации, виджеты социальных сетей, формы и многое другое
  • код компонента может быть установлен простым вырезанием и вставкой
  • одни и те же компоненты могут быть использованы на других страницах, и сайты будут обновляться мгновенно
  • нетехническим редакторам легко вносить изменения в WYSIWYG-редакторе и проверять его с помощью предварительного просмотра в реальном времени
  • все пользователи могут делиться ссылками панели ввода-вывода Component Io и совместно работать над одними и теми же элементами
  • Компонентный ввод-вывод быстрый и быстро доставляет элементы одним вызовом API, независимо от количества, встроенного в страницу
  • Вы можете переключать CMS или создавать процессы в любой точке и сохранять компоненты
  • полное справочное руководство и помощь в чате в режиме реального времени доступна
  • Бесплатная пробная учетная запись может быть использована для тестирования службы с вашей системой.

Компонент IO Пользовательские компоненты

Несмотря на огромный доступный диапазон, компонентный ввод-вывод позволяет разработчикам создавать и редактировать свои собственные компоненты. В этом уроке я покажу, как создать простой пользовательский компонент линейчатой ​​диаграммы, который можно отображать и настраивать на любом сайте:

пример гистограммы

Концепции разработки компонентов

Компонент IO использует компонентную модель Vue.js. Те, кто имеет опыт работы с фреймворком, сразу распознают концепции и синтаксис. Тем не менее, я не эксперт Vue.js — но немного знаний HTML, CSS и JavaScript достаточно для создания сложного компонента.

Все компоненты инкапсулированы; их стили и код не могут «просочиться» в другие части страницы. Например, заголовок компонента гистограммы является элементом H2

 h2 {
  font-family: comic-sans;
  font-size: 8em;
  color: #f00;
}

Vue.js гарантирует, что эти (ужасные!) Стили будут применяться только к нашему компоненту, а не к заголовкам H2 Однако стиль, применяемый ко всем заголовкам H2 Это может быть полезно, поскольку наш компонент может наследовать шрифты, цвета и размеры по умолчанию.

Шаг 1: создайте пустой компонент

Войдите в component.io , а затем нажмите Пустой компонент на странице проекта :

создать новый компонент

В меню « Правка» выберите « Редактировать имя компонента» и введите «barchart» или другое подходящее имя.

меню редактирования

Шаг 2: Определите поля

Поля используются для настройки компонента. Они разрешают:

  1. Редакторы контента для изменения значений.
  2. Другие компоненты должны быть созданы с другой конфигурацией. Например, если нам требуются две гистограммы, мы можем продублировать первую и изменить значения полей соответственно.

В меню « Правка» выберите « Добавить / удалить поля» и введите необходимые поля:

добавить и удалить поля

Для этого элемента управления я определил:

  1. Одно текстовое поле заголовка .
  2. Числовое поле barvalue, которое определяет значение бара.
  3. Текстовое поле barlabel, которое определяет метку панели.
  4. Цветовое поле barcolor, которое определяет цвет бара.

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

Шаг 3: Установите начальные данные

Нажмите меню « Правка», чтобы открыть элемент управления «Содержимое и код». Оставшись в разделе « Содержимое », я ввел значения для заголовка и трех элементов данных:

установить данные поля

Шаг 4: Определите код компонента

Нажмите переключатель « Код», чтобы открыть редактор кода. Это где HTML, CSS и JavaScript компонента определены:

редактор кода

HTML-документация компонента описывает, как создаются шаблоны. Нет необходимости во внешнем DIV

Поле заголовка добавляется первым:

 <h2 v-text="title"></h2>

В качестве альтернативы мы могли бы использовать:

 <h2>{{ title }}</h2>

Строки диаграммы будут содержаться в элементе списка <ul><li> HTML-код:

 <ul>
    <li v-for="item in items" :style="item.style">
        <span>{{ item.barlabel }} 
            <strong>{{ item.barpc }}</strong>
        </span>
    </li>
</ul>

v-for<li>items Обратите внимание, что на этом этапе я не определил поля для item.styleitem.barpc

Компонент CSS теперь может быть определен. Это будет применяться только к самому компоненту, а не к любым другим элементам страницы. Синтаксис Sass SCSS может быть принят для переменных, вложенности и других функций, но я сохранил это просто:

 h2 {
    font-weight: normal;
}

ul {
    padding: 2px 0;
    margin: 1em 0;
    list-style-type: none;
    border-left: 1px solid #666;
}

li {
    line-height: 1.2;
    padding: 1px 4px;
    margin: 0 0 1px 0;
}

span {
    display: block;
    color: #888;
    mix-blend-mode: difference;
}

strong {
    float: right;
    font-size: 0.8em;
    font-weight: normal;
    line-height: 1.5;
}

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

Каждый компонент Component IO является экземпляром Vue.js и может использовать стандартные свойства и методы JavaScript . Например:

  • component.datacomponent.data.titlecomponent.data.items[0].barlabel Если мы изменим значение, оно будет немедленно обновлено в компоненте.
  • метод component.mounted

Компонент barchart требует код инициализации для расчета:

  1. сумма всех значений бара ( totValue
  2. самое высокое значение ( maxValue Это будет иметь бар, который использует 100% доступного пространства.
 // initialisation
let 
    items = component.data.items,
    totValue = 0, maxValue = 0;

for (let i = 0; i < items.length; i++) {
    totValue += items[i].barvalue;
    maxValue = Math.max(maxValue, items[i].barvalue);
    items[i].style = '';
}

Метод component.mounted

 // component created
component.mounted = function() {

    for (let i = 0; maxValue && i < items.length; i++) {

        let 
            color = items[i].barcolor || '#888',
            pc = Math.round(items[i].barvalue / maxValue * 100);

        // calculate bar percentage
        items[i].barpc = (Math.round(items[i].barvalue / totValue * 100)) + '%';

        // set bar style
        items[i].style = 'background-image:linear-gradient(90deg,' + color + ' ' + 
            pc + '%,transparent ' + pc + '%,transparent ' + (100 - pc) + '%);';
    }

};

Нажмите Сохранить (или нажмите Ctrl + S) и закройте редактор, используя X в левом верхнем углу.

Шаг 5: Предварительный просмотр вашего компонента

Все идет хорошо, компонент теперь отображается так, как и ожидалось:

визуализированный компонент

Вы можете изменить данные поля, чтобы увидеть, как они влияют на компонент.

Если что-то не получается, откройте инструменты разработчика браузера ( F12 или Ctrl | Cmd + Shift + I ) и проверьте все сообщения об ошибках в консоли. Руководство по компонентному вводу-выводу предоставляет дополнительную информацию об API и использовании кода в других средах.

Шаг 6: Установите компонент на свой сайт

Компонент может быть установлен на любом веб-сайте, где вы можете вставить HTML-код (система, такая как CodePen.io, является идеальной). Нажмите кнопку Установить , чтобы просмотреть инструкции.

Первый компонент на странице потребует оба компонента HTML, например

 <component key=XXXXX></component>

… И скрипт IO компонента (непосредственно перед закрывающим </body>

 <script project="YYYYY" src="https://cdn.component.io/v1"></script>

Последующие компоненты на этой странице просто нуждаются в <component>

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

Cue Компонентный рабочий процесс!

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

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