Vue.js 在没有额外包装标签的情况下呈现v-html?

Vue.js 在没有额外包装标签的情况下呈现v-html?,vue.js,vuejs2,Vue.js,Vuejs2,在vue 2v-html中,需要呈现额外的包装标签。但我正在尝试类似以下的东西 //这里是要渲染的选项。 ... 数据()}{ 返回{ countryTags:`孟加拉国` } } 因为,在这里我不能呈现任何额外的html标记,我累了,这不起作用。围绕StackFlow的另一个解决方案似乎没有什么令人困惑的地方。正确的解决方案是什么?不幸的是,Vue没有提供一种简单的方法来实现这一点(有关原因的更多详细信息,请参见此处:) 如上所述,您可以创建一个功能组件,只呈现HTML而不使用包装器元素:

在vue 2
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