动态渲染vue模板

时间:2019-09-12 07:20:37

标签: javascript vue.js vue-component

我将vue模板数据作为字符串。例如,
String s = "<div>{{myData}}</div>"

现在我想在已经定义的vue组件中进行渲染。

<template>
<div>
   HERE I NEED TO PLACE THE STRING
</div>
</template>
<script>
export default {
  name: 'HelloWorld',
  data: {
    myData: "IRONMAN"
  },
}
</script>

现在我希望输出为IRONMAN

我该如何实现?请帮助。 谢谢

1 个答案:

答案 0 :(得分:1)

您可以有一个文件组件,然后执行此操作-我有一个名为Dynamic.vue的文件,它可以接受HTML字符串-我用它来允许用户生成自己的模板,并且所有绑定均正确匹配,喜欢:

<script>
export default {
  data () {
    return {
      someVar: 'Test'
    }
  },
  props: {
    templateHtml: {
      templateHtml: true,
      type: String
    }
  },
  created () {
    this.$options.template = this.templateHtml
  }
}
</script>

如果您这样称呼它:

this.htmlData = '<div>Hello - {{{someVar}}</div>'
....
<my-dynamic-component :template-html="htmlData" />`

您将看到输出

  

你好测试

然后您将忽略SFC中的<template>部分。

注意:为了使其正常工作,您还必须在项目中包含Vue编译器(因为这可以将SFC编译为Vue用于显示数据的渲染函数)。

此链接:https://vuejs.org/v2/guide/installation.html#CLI可以提供有关包括Vue编译器的更多信息。