但现在的情况是,数组元素为<p>3</p>,但是{{ }} 模板插值中还是显示<p>3</p>
时间: 2024-10-26 18:17:57 浏览: 44
如果数组元素直接是像 `<p>3</p>` 这样的HTML片段,并且你在模板插值 (`{{ }}`) 中期望它能直接解析成文本而不是保留原始HTML形式,那么你需要使用 Vue 的安全模式(sanitizeHTML)或者第三方库如 `vue-render-html` 来转换这些字符串。
在 Vue 3.2 版本之后,官方引入了 `v-html` 指令,用于安全地将HTML内容插入到元素中。例如:
```html
<template>
<div id="app">
<ul>
<li v-for="(item, index) in items" :key="index">
<span v-html="item.htmlTag"></span>
</li>
</ul>
</div>
</template>
```
然后,在你的组件内:
```javascript
export default {
props: {
item: {
type: Object,
required: true,
default: () => ({
htmlTag: ''
})
}
},
directives: {
'v-html': require('vue').directive('v-html')
}
}
```
这样 `v-html` 就会尝试解码并渲染HTML片段。记得启用这个功能之前,要确保你的环境安全,因为不当的HTML输入可能会带来安全风险。
阅读全文