В статье « Введение в компонентный ввод-вывод» описано, как вы можете использовать готовые компоненты на любом сайте независимо от используемой системы управления контентом, языков или технологий. Преимущества включают в себя:
- сотни готовых, привлекательных и настраиваемых компонентов на выбор, включая блоки контента, галереи, панели навигации, виджеты социальных сетей, формы и многое другое
- код компонента может быть установлен простым вырезанием и вставкой
- одни и те же компоненты могут быть использованы на других страницах, и сайты будут обновляться мгновенно
- нетехническим редакторам легко вносить изменения в 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: Определите поля
Поля используются для настройки компонента. Они разрешают:
- Редакторы контента для изменения значений.
- Другие компоненты должны быть созданы с другой конфигурацией. Например, если нам требуются две гистограммы, мы можем продублировать первую и изменить значения полей соответственно.
В меню « Правка» выберите « Добавить / удалить поля» и введите необходимые поля:
Для этого элемента управления я определил:
- Одно текстовое поле заголовка .
- Числовое поле barvalue, которое определяет значение бара.
- Текстовое поле barlabel, которое определяет метку панели.
- Цветовое поле 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.style
item.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.data
component.data.title
component.data.items[0].barlabel
Если мы изменим значение, оно будет немедленно обновлено в компоненте. - метод
component.mounted
Компонент barchart требует код инициализации для расчета:
- сумма всех значений бара (
totValue
- самое высокое значение (
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 предоставляет простой инструмент, который может революционизировать подход к новым функциям и обновлениям для клиентов. Легко начать с готовых виджетов, а затем создать собственную коллекцию компонентов. Регистрация бесплатна — вам нечего терять!