Vue v-html渲染后端返回的a标签 保留单页面跳转

发布于 2022-09-11 18:55:45 字数 193 浏览 21 评论 0

最近在做一个社交类的项目,后端想对用户的发表内容 @用户名 这种处理返回一个a标签
例如:
输入: 这是我朋友 @chaser
返回: 这是我朋友 @chaser

请问大神们,如何让这个a标签也走router-link的功效呢,或者也实现利用后端数据渲染出单页面跳转效果

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

深府石板幽径 2022-09-18 18:55:45

1 把 字符串解析成 节点数据

let arrNode = JSON.parse('['+'这是我朋友 @chaser 这是我同事 @lisa 这是我亲戚 @mike'.replace(/(@[^\s]*|[^@]*)/g, function($all, $1){
    return ',{"type":"'+($1.charAt(0)==='@'?'@':'text')+'", "content":"'+$1+'"}';
}).substr(1)+']')

2 vue 组件入参 解析的节点数据数组

<div v-for="node in arrNode">
    <route-link :to="{name:'at-user', params:{user:item.content.substr(1)}}" v-if="node.type === '@'">{{item.content}}</route-link>
    <div v-else="">{{item.content}}</div>
</div>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文