Javascript Vuejs-呈现到<;的原始html链接;路由器链路>;
一,;我是VueJS的新手,我正在做一些奇怪的实验。我使用python/flask构建了一个后端服务,该后端为我提供了一个包含许多标记的html代码字符串,我想在我的Vue应用程序中呈现它,我有一个调用后端的方法,如下所示:Javascript Vuejs-呈现到<;的原始html链接;路由器链路>;,javascript,html,vue.js,frontend,Javascript,Html,Vue.js,Frontend,一,;我是VueJS的新手,我正在做一些奇怪的实验。我使用python/flask构建了一个后端服务,该后端为我提供了一个包含许多标记的html代码字符串,我想在我的Vue应用程序中呈现它,我有一个调用后端的方法,如下所示: async execute (method, resource, data) { return client({ method, url: resource, data: data }).then(async req =&
async execute (method, resource, data) {
return client({
method,
url: resource,
data: data
}).then(async req => {
return req.data.html
})
},
callBack (id) {
console.log(id)
return this.execute('post', '/content/', {body: { 'id': id }})
}
在.vue文件中,我有:
export default {
data () {
return {
loading: false,
launch: [],
html: 'none',
page: this.$route.params.article
}
},
beforeMount () {
console.log('beforeee')
this.html = api.callBack(this.page)
},
methods: {
async launch () {
this.launch = ''
this.html = await api.callBack(this.page)
}
}
}
因此,当我调用launch函数时,它会填充this.html,这个html变量存在于一个v-html中。一切似乎都正常。我得到html并在de容器中呈现它,但链接断开了,链接应该指向同一个应用程序,类似于#/test/linkvalue,但它们是标记,在vue中,您必须使用它们,但它们不起作用
有一种方法可以实现这种“动态重路由”,或者我做了一些太奇怪的事情?
链接很多,因为它们是从web上刮下来的,所以手动解析不是一个选项
提前感谢您的帮助另外,您不应该返回原始html。只需返回路由的路径,然后循环路径并以这种方式创建链接 您可以使用
v-html
vue指令输出原始html
newvue({
el:“应用程序”,
数据:{
rawhtml:“嗨,我是原始html。”
},
方法:{
}
})
出于好奇:如果你有一个Vue应用程序,为什么要在服务器上生成html?嗨!我只是在做一些实验。我们的想法是使用服务器来废弃网页,做一些预处理、存储,然后将html或其他东西返回给应用程序进行渲染。我有类似的想法,但html中的链接已经失效。根据文件,他们应该是。为了清楚起见,html可以正常工作并呈现,但链接和其中的标记不起作用。@RolandDeschain您能创建一个js FIDLE来复制它吗?您好,我在调用启动中创建了这个图像。html变量填充了许多指向vue路由器中定义的#/route/x的链接,但是这些链接不起作用,我点击了它们,什么也没有。事实上,这些链接确实改变了浏览器中的url,但是页面不会重新加载,视图也不会相应地用新的url重新加载。@RolandDeschain如果你将html链接改为,它会工作得很好。能否将vue路由器代码添加到问题中?
new Vue({
el: "#app",
data: {
rawhtml: "<h1 style='color: red;'>Hi, I am raw html.</h1>"
},
methods: {
}
})
<div id="app">
<div v-html="rawhtml"></div>
</div>