为什么v-html识别 不了<router-link>
时间: 2023-07-19 14:03:04 浏览: 243
用v-html解决Vue.js渲染中html标签不被解析的问题
5星 · 资源好评率100%
`<router-link>` 是 Vue Router 提供的组件,用于在 Vue 应用程序中创建链接。它不是标准的 HTML 元素,而是 Vue 组件,因此如果你要在 `v-html` 中渲染 `<router-link>`,它不会被识别为 Vue 组件而会被当作普通的 HTML 标签处理。
如果你想在 `v-html` 中使用 `<router-link>`,可以考虑使用动态组件或者手动渲染组件的方式来实现。例如,你可以使用 `v-bind:is` 指令将组件动态绑定到一个变量上,然后在 `v-html` 中使用该变量。示例代码如下:
```html
<template>
<div v-html="content"></div>
</template>
<script>
export default {
data() {
return {
content: '<router-link v-bind:to="{ path: \'/about\' }">About</router-link>'
}
}
}
</script>
```
然后在渲染 `content` 时,你可以使用 `v-bind:is` 来动态渲染组件:
```html
<component v-bind:is="getComponent()" />
```
注意,在使用动态组件时,你需要在 Vue 组件中定义对应的组件,并通过 `getComponent()` 方法返回正确的组件名称。
阅读全文