Vue 中 router-link 和 RouterLink 的区别

Different between router-link and RouterLink in Vue

在使用 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>  

<RouterLink><RouterView>:

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

<template>
  <RouterLink to="/">Home</RouterLink>
  <RouterLink to="/about">About</RouterLink>
  <hr />
  <RouterView />
</template>

问题

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

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

P.S. 使用 npm init vue@latest 命令脚手架一个新的 Vue 项目使用 RouterLinkRouterView 组件而不是 router-linkrouter-view.

它们是同一回事。任何组件都可以通过将其名称写为 PascalCase 或 kebab-case.

来使用

都是相同的组件,只是大小写不同,在vue中建议使用PascalCase语法here:

In SFCs, it's recommended to use PascalCase tag names for child components to differentiate from native HTML elements. Although native HTML tag names are case-insensitive, Vue SFC is a compiled format so we are able to use case-sensitive tag names in it. We are also able to use /> to close a tag.

一个是组件名,一个是vueclass。我认为没有区别。如果您要创建自己的组件,例如MyComponent.vue,你也可以使用