Link
Link
组件是在应用中用于放置路由导航链接的,相当于HTML中的a
标签。Link
组件的使用在上一节的示例中已经出现过了,其最简单的用法就是使用to
属性指定链接要导航到的路由,组件标签所包裹的内容就是需要在应用页面上渲染输出的代表链接的文字内容。所以这样看来,Link
组件的整体表现形式与a
标签的形式基本相同。
但是Link
组件与普通的a
标签还是有非常巨大的不同的。在这方面最大的表现是Link
组件还具有更多的路由控制属性。Link
组件常用的属性主要有以下这些。
to
,用于指示当前链接的导航目标路由位置。to
属性可以接受一个字符串或者一个Partial<To>
类型的对象作为其属性值。这个To
类型的对象实际上并不难理解,其中提供了pathname
、search
和hash
三个字符串类型字段来分别存储一个路由导航URL的路径、查询串和Hash串三个部分。但是在大部分情况下,为了使用便利,还是以字符串表示导航目标的形式为主要使用方法。replace
,布尔类型属性,用于指示React Router在执行导航的时候是否需要清空导航历史栈。如果给定了true
值,那么React Router将会先清除当前的导航历史栈,然后再把当前的导航目标压入栈中,此时应用也就不能再执行后退等操作,因为历史栈已经被清空了。state
,可以是任意类型的对象或者值,用于传递给目标路由组件的数据。注意,这里的属性名虽然也叫做state
但是所传递的内容并不同于React应用中所使用的State。