Link

Link组件是在应用中用于放置路由导航链接的,相当于HTML中的a标签。Link组件的使用在上一节的示例中已经出现过了,其最简单的用法就是使用to属性指定链接要导航到的路由,组件标签所包裹的内容就是需要在应用页面上渲染输出的代表链接的文字内容。所以这样看来,Link组件的整体表现形式与a标签的形式基本相同。

但是Link组件与普通的a标签还是有非常巨大的不同的。在这方面最大的表现是Link组件还具有更多的路由控制属性。Link组件常用的属性主要有以下这些。

  • to,用于指示当前链接的导航目标路由位置。to属性可以接受一个字符串或者一个Partial<To>类型的对象作为其属性值。这个To类型的对象实际上并不难理解,其中提供了pathnamesearchhash三个字符串类型字段来分别存储一个路由导航URL的路径、查询串和Hash串三个部分。但是在大部分情况下,为了使用便利,还是以字符串表示导航目标的形式为主要使用方法。
  • replace,布尔类型属性,用于指示React Router在执行导航的时候是否需要清空导航历史栈。如果给定了true值,那么React Router将会先清除当前的导航历史栈,然后再把当前的导航目标压入栈中,此时应用也就不能再执行后退等操作,因为历史栈已经被清空了。
  • state,可以是任意类型的对象或者值,用于传递给目标路由组件的数据。注意,这里的属性名虽然也叫做state但是所传递的内容并不同于React应用中所使用的State。