Javascript Vue.js 2.0:应用使用v-html呈现的Vue组件,编译标记 我正在使用VueJS2.0

Javascript Vue.js 2.0:应用使用v-html呈现的Vue组件,编译标记 我正在使用VueJS2.0,javascript,html,mvvm,ecmascript-6,vue.js,Javascript,Html,Mvvm,Ecmascript 6,Vue.js,有没有办法使下面的渲染成为链接 以下是我的vue组件: <template> <div v-html="markup"></div> </template> <script> new Vue({ data() { return { markup: '<router-link :to="{path: 'https://www.google.com'}"></router-link>',

有没有办法使下面的渲染成为链接

以下是我的vue组件:

<template>
  <div v-html="markup"></div>
</template>

<script>
new Vue({
  data() {
    return {
      markup: '<router-link :to="{path: 'https://www.google.com'}"></router-link>',
    });
  },
});
</script>

新Vue({
数据(){
返回{
标记:“”,
});
},
});
在上面的示例中,我想动态导出一段标记,它包含一些动态内容,如上面的
router link

但该内容没有编译,并导出一个
标记作为最终结果

有没有办法让它以编程方式编译


我真正想要的是找到一种手动编译html的方法。如果
v-html
不起作用,还有其他方法吗?如果要呈现链接列表,可以这样做:

<template>
  <router-link v-for="list in lists" :to="{path: list}"></router-link>
</template>

<script>
new Vue({
  data() {
    return {
      lists: ['https://www.google.com', 'https://www.stackoverflow.com']
    });
  },
});
</script>

某物

我认为您无法通过
v-html
指令实例化Vue实例。要做到这一点,您必须覆盖默认值,这需要付出大量的努力

如果您只需要动态链接,为什么不尝试以下方法:

data: {
  menu: []
}
然后:

<router-link v-for="item in menu" :to="item.src">{{item.name}}</router-link>
{{item.name}

附言:你能举例说明你必须做这样的事情吗?我对它的需求很感兴趣。

v-html
只适用于基本上是生成文本的预编译html。 如果您想动态更改内容,只需使用
If
条件,根据
prop
呈现列表视图,它将告诉您列表视图的类型


我认为在数据库中保存标记不是一个好主意。在数据库中保存一些设置,并基于这些设置来呈现必要的html,这样会更方便。(您案例中的道具类型)。也许如果你提供一个更具体的例子,下面会有一些建议。如您所见,答案基于您的
路由器链接
示例,我认为这不足以回答您的问题

可能重复的@Saurabh谢谢,但我不想知道为什么它不能,而是想得到一个解决方案,有什么想法吗?。您为什么要这样做,您想解决的确切问题是什么?@Saurabh是的,我只想在更灵活的条件下动态呈现链接列表。在Vue2.0中,也许我想要这样的东西谢谢你,我知道,但我想呈现一个包含任何引用组件标记的完全动态内容。@AlfredHuang你能告诉我你的列表是什么吗?你能详细说明一下你的列表、代码和用例以帮助更好地理解吗,为什么我要问的是,在vue中可以有其他方法来做同样的事情。我正在开发一个管理框架,正在开发一个
ListView
组件,我可能会将一些字段类型定义为
prop
传递给它。我想支持一个名为
html
的字段类型来呈现一些动态标记,例如
路由器链接
交换机
图像选择器
日期选择器
,它们被声明为自定义组件。Master,请参见文档:,我想在这里称为模板编译。似乎我可以用这种方式注入动态模板。但我不太明白如何在我的例子中使用它,最简单的解释是,我想动态更改模板,将标记片段存储在数据库中大兄弟你咋不直接存数据,然后直接取出来解析成 JavaScript对象,当Vue的数据使用。如果你要硬是存成模板的话,那就从数据库导出给服务器后端生成动态的JavaScript文件吧。