Vue中router-link和RouterLink的区别

You*_*saf 5 vue.js vuejs3 vue-composition-api

当使用 Vue Router 时,我发现我可以使用<router-link>以及RouterLink来实现相同的结果,即在不同的路由之间导航。

同样,还有<router-view>组件RouterView

以下两个代码示例给出了相同的结果:

<router-link><router-view>

<template>
  <router-link to="/">Home</router-link>
  <router-link to="/about">About</router-link>
  <hr />
  <router-view></router-view>
</template>  
Run Code Online (Sandbox Code Playgroud)

<RouterLink><RouterView>

<script setup>
import { RouterLink, RouterView } from "vue-router";
</script>

<template>
  <RouterLink to="/">Home</RouterLink>
  <RouterLink to="/about">About</RouterLink>
  <hr />
  <RouterView />
</template>
Run Code Online (Sandbox Code Playgroud)

问题

<router-link>和之间有什么区别RouterLink(以及<router-view>和之间RouterView?)

我在 Vue Router 文档上找不到任何内容。搜索RouterViewRouterLink未显示任何与其相关的结果。文档仅提到<router-link><router-view>

PS搭建一个新的 Vue 项目,使用npm init vue@latest命令使用RouterLinkRouterView组件而不是router-linkrouter-view

Bou*_*him 4

它是相同的组件,只是情况不同,在 vue 中建议使用此处PascalCase提到的语法:

在 SFC 中,建议对子组件使用 PascalCase 标记名称,以区别于本机 HTML 元素。虽然原生 HTML 标签名称不区分大小写,但 Vue SFC 是一种编译格式,因此我们可以在其中使用区分大小写的标签名称。我们还可以使用 /> 来关闭标签。

  • 如果“PascalCase”是推荐的命名约定,那么 vue-router 在其示例中使用“kebab-case”是否有具体原因? (2认同)