У меня был следующий код с использованием v-текст:
<h1 v-text = "content.title"></h1>
Вывод:
Brand Name is B&C
Поэтому я исправил это с помощью v-html в предыдущей строке:
<h1 v-html = "content.title"></h1>
Вывод:
Brand Name is B&C
У меня следующий вопрос: почему он работает с использованием v-html, а не v-текст? Я уже читал документацию по Vue, но не совсем понимаю разницу.
Люди злые, я думаю ... добро пожаловать на переполнение стека, мы получили печенье и лодку горечи. Вот голос, вы не теряете веру в переполнение стека :)





v-text устанавливает textContent узла. v-html устанавливает innerHTML элемента. & - это объект HTML. Если вы хотите, чтобы объекты HTML интерпретировались и заменялись, вам нужно, чтобы они интерпретировались как HTML, а не как текст.
Я хочу добавить, что интерпретация ввода пользователя как HTML представляет угрозу безопасности.
Спасибо ! Интересно @German, почему это представляет угрозу безопасности?
Я думаю, что он ссылается на XSS (межсайтовый скриптинг) (вот чтение: computerweekly.com/tip/…). Вам просто нужно быть осторожным, чтобы данные, которые вы помещаете в v-html, поступали из безопасного места и / или были должным образом продезинфицированы, чтобы вы не открывали свой веб-сайт для выполнения вредоносных скриптов :)
Директива v-html используется для обновления innerHTML элемента нашими данными. Это то, что отделяет его от v-текста, что означает, что пока v-текст принимает строку и обрабатывает ее как строку, он принимает строку и отображает ее в HTML.
Какой смысл понижать мой вопрос без каких-либо причин?