Чтобы распечатать HTML-контент в Vue.js, вы можете использовать различные методы в зависимости от ваших конкретных требований. Вот несколько подходов:
-
Использование интерполяции. Вы можете напрямую вставлять HTML-код, используя двойные фигурные скобки (интерполяция) в шаблон Vue. Например:
<template> <div> {{ htmlContent }} </div> </template>В разделе сценария вашего компонента вы должны присвоить HTML-содержимое свойству данных
htmlContent. -
Использование директивы v-html: Vue предоставляет встроенную директиву под названием
v-html, которая позволяет динамически отображать HTML-контент. Например:<template> <div v-html="htmlContent"></div> </template>В этом случае вы должны присвоить HTML-содержимое свойству данных
htmlContentаналогично предыдущему методу. -
Использование фильтра. Вы можете создать собственный фильтр Vue для очистки и рендеринга HTML-контента. Сначала создайте фильтр в своем компоненте:
filters: { renderHTML(value) { // Sanitize and render HTML content here // You can use DOMPurify or other libraries for sanitization return sanitizedHTML; } }Затем вы можете использовать фильтр в своем шаблоне:
<template> <div> {{ htmlContent | renderHTML }} </div> </template>Опять же, вы должны присвоить HTML-содержимое свойству данных
htmlContent.
Важно отметить, что при динамическом рендеринге HTML необходимо убедиться, что контент надежен и правильно очищен, чтобы предотвратить атаки межсайтового скриптинга (XSS).