withRouter、Link、Route等的页面跳转有疑问

withRouter、Link、Route等的页面跳转有疑问

1、这里导入withRouter实现点击退出返回到首页,老师说因为Login不在Route项里所以使用这种方法?

http://img1.sycdn.imooc.com//climg/5ed72c0b0900c0d607170518.jpg

可是我看Header组件和Login组件也是不在Route那部分里面啊,它们里面的许多东西不也使用Link实现了跳转的吗?

这里是Link不能实现所以使用withRouter,还是老师只是为了多讲一种页面跳转的方法呢?


2、Link标签是不是把要实现跳转功能的组件包裹起来,然后在Link组件的to属性中设置要跳转到的路径,再把它所在的组件放在src目录的index.js文件中的BrowserRouter里面就可以实现跳转功能了?

3、Route标签设置的是,在地址栏里输入路径跳转到相应的组件;而Link标签设置的是点击里面的内容跳转带相应的组件?我这个理解的对吗?(不知道应该说跳转到组件还是页面,它们有啥区别,这里应该用哪种描述方式呢?)

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,关于你的问题,回答如下:

1、是在BrowserRouter中。但是不在Route这个项里(Route项就是上面圈的三个),没有路由的信息。所以引入了withRouter,来获取路由的信息。

而withRouter中提供的方法,我们可以直接跳转路径,不需要再使用到link。

这里是老师多提供了一种方法,还是可以直接使用link的。

2、是的,不过注意是要放到BrowserRouter里面中的路由项中。

3、是的。这里Route就是上面说的路由项。都可以的。一个页面可以叫做一个组件,不过组件的范围更广,一个单独提前的功能也能叫一个组件。

如果我的回答帮助了你,欢迎采纳,祝学习愉快~

  • Aurora_Meteor 提问者 #1
    您第二点中‘要放到BrowserRouter里面中的路由项中’,路由项是指的Route标签吗?什么要放在路由项中呢,是Link标签的to属性中的内容要在Route标签的path属性里有设置吗?
    2020-06-03 15:45:19
好帮手慕糖 2020-06-04 10:07:25

同学你好,关于你的问题,回答如下:

1、是的,Link组件的to属性值是要跳转的路由,这里是要通过Switch选择其中的一路由,所以要放在路由项中。

2、是因为在路由项中,match才可以获取。而不是只要在路由项中,就都要获取哦。

3、不是全部都要放的,是指不是全部都要放到路由项中,比如:我们后面跳转到跟路径的时候,可以直接写“/”,因为是默认到根路径的,其他的是要写的。

祝学习愉快~

好帮手慕糖 2020-06-03 19:03:31

同学你好,关于你的问题,回答如下:

1、是的,上个回答中有说到哦。

2、因为要使用match来获取路由,所以才放到路由项中。

3、不是全部都要放的。

祝学习愉快~

  • 提问者 Aurora_Meteor #1
    不知道是您没明白我的问题还是我不明白您的回答。 1、对于您回答的2、3点,我问题中后一句的意思是“Link组件的to属性值要放在路由项中吗?”,如果是的话,这句话的意思是否是“Link标签的to属性中的内容要在Route标签的path属性里有进行设置”? 2、第二点里,您说‘要使用match来获取路由,所以才放到路由项中’,是指在Route标签里设置组件的路由的原因吗?可是Route标签中的组件有Vip、Detail、List,但是Vip组件里并没有使用到match啊。 3、第三点里,您说“不是全部都要放的”,我不知道这指的是什么内容
    2020-06-03 19:30:07
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师