لتحويل سلسلة نصية إلى DOM في Vue.js، يمكنك استخدام v-html
directive. هذه الطريقة تسمح بترجمة السلسلة النصية المراد تحويلها إلى HTML فعلي وعرضها كعنصر DOM. في المثال الخاص بك، يمكنك استخدامها كما يلي:
html<template>
<div id="log" v-html="libText">div>
template>
<script>
export default {
data() {
return {
// قم بتحويل السلسلة النصية إلى عنصر DOM واستخدامها في القالب
libText: "some html
مقالات ذات صلة
"
};
}
};
script>
تذكر أن استخدام v-html
يعرضك لخطر تعرض التطبيق لهجوم XSS إذا كانت السلسلة النصية التي تتلقاها من مصدر غير موثوق به. تأكد من تنقيح وتنقية المدخلات قبل استخدامها مع v-html
لتجنب هذا الخطر.
المزيد من المعلومات
بالطبع! في Vue.js، يمكنك أيضًا استخدام مكتبات تحويل النص إلى HTML مثل he
لتجنب مشكلات الأمان المحتملة عند استخدام v-html
مع مدخلات غير موثوق بها. على سبيل المثال، يمكنك استخدام he
لتحويل النص النصي إلى HTML entities بشكل آمن قبل عرضها:
bashnpm install he
ثم، في ملف السكربت في مكون Vue الخاص بك:
javascriptimport he from 'he';
export default {
data() {
return {
libText: "some html
"
};
},
computed: {
// تحويل النص إلى HTML entities باستخدام مكتبة `he`
safeLibText() {
return he.encode(this.libText);
}
}
};
ثم، في قالب Vue الخاص بك:
html<template>
<div id="log" v-html="safeLibText">div>
template>
هذا النهج يزيد من الأمان عند استخدام v-html
من خلال تحويل النص إلى HTML entities، مما يحمي تطبيقك من هجمات XSS.