You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue Router:router-link传递动态路径的语法问题求助

解决Vue Router动态路径绑定问题

你遇到的问题很典型——你现在是把item.route当成了字符串字面量传递给router-link的to属性,而不是绑定到组件props里的item对象的route属性。Vue会把不带绑定的字符串直接解析成固定路径,所以才会出现所有href都是#/item.route的情况。

修复方法

只需要给to属性加上v-bind绑定(或者用简写的冒号:),让Vue知道要解析表达式而不是字符串:

修改子组件里的router-link部分:

<li v-on:click="$emit('closeDropdown')">
  <router-link :to="item.route" id="button">{{ item.title }}</router-link>
</li>

或者用完整的v-bind写法也可以:

<li v-on:click="$emit('closeDropdown')">
  <router-link v-bind:to="item.route" id="button">{{ item.title }}</router-link>
</li>

额外检查点

  • 确保父组件里的userDropdownItems数组中,每个item的route字段确实是有效的路由路径(比如'/profile'、'/settings'这类字符串)。
  • 建议在子组件里显式声明item props,避免潜在的类型或未定义问题:
<script>
export default {
  props: {
    item: {
      type: Object,
      required: true
    }
  }
}
</script>

这样修改后,router-link就会根据每个item的route值生成对应的href了。

内容的提问来源于stack exchange,提问作者Bitwise

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:24:53