QEditor — это компонент Quasar, предназначенный для работы с форматированным текстом. Он поддерживает редактирование HTML-контента, работу с ссылками, изображениями, списками и стилями текста, а также интеграцию с другими компонентами Quasar, такими как диалоги и панели инструментов.
Компонент основан на contenteditable, что позволяет динамически изменять содержимое и получать его в виде HTML. Это делает QEditor гибким инструментом для создания визуальных редакторов, блог-платформ и административных панелей.
Для использования QEditor необходимо убедиться, что проект Quasar настроен с поддержкой компонентов. Импорт осуществляется следующим образом:
v-model связывает содержимое редактора с переменной
content.:definitions позволяет расширять стандартный набор
кнопок и функций редактора.QEditor предоставляет гибкую настройку панели инструментов через
объект definitions. Можно добавить кнопки
форматирования текста, вставки ссылок, изображений и блоков
кода.
Пример пользовательской панели:
customDefinitions: {
bold: { icon: 'format_bold', label: 'Жирный', handler: (editor) => editor.execCommand('bold') },
italic: { icon: 'format_italic', label: 'Курсив', handler: (editor) => editor.execCommand('italic') },
link: { icon: 'link', label: 'Ссылка', handler: (editor) => {
const url = prompt('Введите URL');
if (url) editor.execCommand('createLink', url);
} }
}
icon,
label и handler.handler получает экземпляр редактора для выполнения
команд.QEditor поддерживает стандартные HTML-команды для форматирования:
bold — жирный текстitalic — курсивunderline — подчеркнутый текстstrikeThrough — зачеркнутый текстinsertOrderedList / insertUnorderedList —
нумерованные и маркированные спискиИспользование встроенных команд:
editor.execCommand('bold'); // Сделать текст жирным
editor.execCommand('insertUnorderedList'); // Создать маркированный список
Редактор поддерживает вставку изображений, видео и ссылок с сохранением HTML-структуры:
editor.execCommand('insertImage', 'https://example.com/image.jpg');
editor.execCommand('createLink', 'https://example.com');
target="_blank"
через модификацию HTML-кода после вставки.QEditor предоставляет ряд событий для отслеживания изменений и взаимодействий:
@input — срабатывает при каждом изменении
содержимого@focus / @blur — при фокусе и потере
фокуса@selection-change — при изменении выделенного
текстаПример привязки события ввода:
methods: {
onContentChange(html) {
console.log('Текущее содержимое редактора:', html);
}
}
Можно создавать собственные плагины, расширяющие возможности редактора, например:
Плагин подключается через объект definitions, аналогично
встроенным кнопкам.
Так как QEditor работает с HTML-контентом, необходимо учитывать безопасность:
, без
контроля)v-html осторожно, чтобы избежать
XSS-уязвимостейQEditor поддерживает стилизацию через стандартные классы Quasar и CSS:
.q-editor {
min-height: 300px;
border: 1px solid #ccc;
border-radius: 4px;
}
QEditor обеспечивает гибкость и расширяемость, позволяя создавать как простые текстовые редакторы, так и сложные визуальные инструменты для работы с контентом в Quasar.