Vue.js 在没有额外包装标签的情况下呈现v-html?
在vue 2Vue.js 在没有额外包装标签的情况下呈现v-html?,vue.js,vuejs2,Vue.js,Vuejs2,在vue 2v-html中,需要呈现额外的包装标签。但我正在尝试类似以下的东西 //这里是要渲染的选项。 ... 数据()}{ 返回{ countryTags:`孟加拉国` } } 因为,在这里我不能呈现任何额外的html标记,我累了,这不起作用。围绕StackFlow的另一个解决方案似乎没有什么令人困惑的地方。正确的解决方案是什么?不幸的是,Vue没有提供一种简单的方法来实现这一点(有关原因的更多详细信息,请参见此处:) 如上所述,您可以创建一个功能组件,只呈现HTML而不使用包装器元素:
v-html
中,需要呈现额外的包装标签。但我正在尝试类似以下的东西
//这里是要渲染的选项。
...
数据()}{
返回{
countryTags:`孟加拉国`
}
}
因为,在这里我不能呈现任何额外的html标记,我累了
,这不起作用。围绕StackFlow的另一个解决方案似乎没有什么令人困惑的地方。正确的解决方案是什么?不幸的是,Vue没有提供一种简单的方法来实现这一点(有关原因的更多详细信息,请参见此处:)
如上所述,您可以创建一个功能组件,只呈现HTML而不使用包装器元素:
Vue.component('html-fragment', {
functional: true,
props: ['html'],
render(h, ctx) {
const nodes = new Vue({
beforeCreate() { this.$createElement = h }, // not necessary, but cleaner imho
template: `<div>${ctx.props.html}</div>`
}).$mount()._vnode.children
return nodes
}
})
Vue.component('html-fragment'{
功能性:对,
道具:['html'],
渲染(h,ctx){
const nodes=新的Vue({
beforeCreate(){this.$createElement=h},//不需要,但需要更干净的imho
模板:`${ctx.props.html}`
}).$mount().vnode.children
返回节点
}
})
此组件由Vue核心成员(LinusBorg)创建:v-html的工作原理如下。如果不需要任何包装标签,只需键入
{{{countryTags}}
,它将呈现一个字符串,而不是html