使用 <router-link> 比使用 <a href=""> 有什么优势?

Rob*_*don 2 vue.js vue-router

使用vue-router<router-link>提供了用于链接到路由的组件。例子:

<router-link to="/foo">Link</router-link>
Run Code Online (Sandbox Code Playgroud)

但是,以下代码似乎工作相同:

<a href="#/foo">Link</a>
Run Code Online (Sandbox Code Playgroud)

<router-link>仅使用有<a>什么优势?

Rob*_*don 5

根据文档<router-link>

<router-link><a href="...">由于以下原因,比硬编码更受欢迎:

  • 它在 HTML5 历史模式和散列模式下的工作方式相同,因此如果您决定切换模式,或者当路由器在 IE9 中退回到散列模式时,无需更改任何内容。

  • 在 HTML5 历史模式下,router-link 会拦截点击事件,这样浏览器就不会尝试重新加载页面。

  • 当您在 HTML5 历史模式下使用 base 选项时,您不需要将其包含在 prop 的 URL 中。

并且:

此外,当目标路由处于活动状态时,链接会自动获取活动的 CSS 类。