【发布时间】:2020-11-13 06:51:08
【问题描述】:
我在 data 中有一个 body 属性
data(){
return{
body:'Hello im @username1 and @username2'
}
}
我想将每个@user 转换为下面的代码,用户可以在其中单击该链接以转到该 url 路径。
<router-link :to="`/${username1}`">@{{username1}}</router-link>
我尝试了什么
<span v-html='bodyReplaced'>
computed: {
bodyReplaced(){
return this.body.replace(
/@\w+/g,
(user) => '<router-link :to="`/${username1}`">@{{username1}}</router-link>'
)
}
}
代码做了什么:
- 将字符串转换为dom中的router-link而不是视图中
- 我不知道如何在匹配后替换 @,所以我可以在 to="`/${username1} 中使用它
【问题讨论】:
-
假设您可以用 router-link 组件替换提到的用户,但是这将不起作用,因为无法解析组件(路由器链接)
-
不要试图弄乱字符串。在模板中编写函数,使用纯字符串或路由器链接呈现实际组件列表。
-
我明白了,这怎么行?有什么例子吗? @Bergi
标签: javascript vue.js vuejs2 vue-component vue-router