如何在v-html中使用组件
How to use components in v-html
我正在尝试使用v-html中的组件。我想从自己的API获取html,然后我将展示它。
这是我的密码。
HTML:
<!-- app -->
<div id="app">
<span v-html="html"></span>
<badge></badge>
<span v-html="html2"></span>
<partial name="my-partial"></partial>
<span v-html="html3"></span>
</div>
Javascript:
Vue.component('badge', {
template: '<span class="component-tag">This is component</span>',
})
Vue.partial('my-partial', '<p>This is a partial!</p>')
// start app
new Vue({
el: '#app',
data: {
html: '<p>THIS IS HTML</p>',
html2: '<badge></badge>',
html3: '<partial name="my-partial"></partial>'
}
})
https://jsfiddle.net/9w3kz6xm/4/
我尝试了部分,因为Vue文档说"如果你需要重用模板片段,你应该使用部分。"
它不起作用。也许我在犯错误,我不知道什么是错误。
谢谢。
Vuejs确实让直接使用外部html变得非常困难。v-html
将简单地替换html内容,因此不会执行任何指令。其目的是避免XSS攻击,如本文所述:https://v2.vuejs.org/v2/guide/syntax.html#Raw-HTML
在您的网站上动态呈现任意HTML可能非常危险,因为它很容易导致XSS漏洞。仅在可信内容上使用HTML插值,而从不在用户提供的内容上使用。
如果您确实需要使用外部html,可以使用此处记录的Vue.compile()
:https://v2.vuejs.org/v2/api/#Vue-编译
可以在此处找到一个工作示例:https://jsfiddle.net/Linusborg/1zdzu7k1/其相关讨论可在此处找到:https://forum.vuejs.org/t/vue-compile-what-is-staticrenderfns-render-vs-staticrenderfns/3950/7
相关文章:
- 自定义HTML元素属性未显示-Web组件
- 如何在v-html中使用组件
- 为什么不't React缓存子组件的html元素
- 用任意html替换ExtJS组件的内容
- 如何在html中使用两个组件
- 加载 HTML 模板以通过浏览器与挖空组件一起使用
- react如何与修改html的javascript ui组件协同工作
- HTML JavaScript动态画布组件
- HTML代码表单Angular2组件属性
- Asp NET在不同的解决方案中共享了html组件
- Aurelia中HTML组件和普通组件之间的区别
- 敲除组件小部件模板requirejs.html
- 使用ejs组件将数据从js发送到html
- 是否可以根据Reactjs中实际布局的html来操作组件
- 如何在HTML中设置React组件的样式
- React.js直接用HTML编写组件
- Windows 8 Metro UI HTML 应用中的自定义可重用 UI 组件
- WYSYWIG HTML屏幕网格编辑器库,用于排列组件
- 是否有用于在网页中嵌入HTML文档的JavaScript组件
- 如何为javascript组件引用HTML层