6、Footer组件的显示与隐藏

显示或隐藏组件:v-if/v-show

Footer:在Home,Search显示Footer组件,在登录注册时隐藏

1、我们可以根据组件身上的$route获取当前路由的信息,通过路由路径判断Footer的显示与隐藏

https://www.hualigs.cn/image/61d32a2c696d2.jpg

2、配置路由的时候,可以给路由加上路由元信息【meta】,路由需要配置对象,他的key不能瞎写、胡写。判断是否隐藏

https://www.hualigs.cn/image/6208cabe75b15.jpg

https://www.hualigs.cn/image/6208caf15a415.jpg

7、路由的传参

7.1、路由的跳转方式

比如A->B

声明式导航:router-link(务必要有to属性),可以实现路由的跳转

编程式导航:利用的是组件实例的$router.push|replace方法,可以实现路由的跳转

7.2、参数的写法

params参数:属于路径的一部分,需要注意,在配置路由的时候,需要占位

query参数:不属于路径的一部分,类似与ajax的queryString ,/home?k=v&kv=,不需要占位

7.3、路由的传参写法

https://www.hualigs.cn/image/6208cb9c2df83.jpg

路由传参后接收

https://www.hualigs.cn/image/6208cbe5daac9.jpg

7.4、路由传参的相关面试题

1、路由传递参数(对象写法)path是否可以结合参数一起使用?

答:路由传递参数的时候,对象的写法可以是name、path形式,但是需要注意的是,path这种写法不能与params参数一起使用

2、如何指定params参数可传可不传?
答:如果路由要求传递params参数,但是就不传递params参数,发现一件事情,URL会有问题。如何指定params参数可以传递、或者不传递,在配置路由的时候,后面加上一个问号【params参数可以传递或者不传递】

3、params参数可以传递也可以不传递,但是如果传递是空串,如何解决

答、使用undefined解决,params参数可以传递、不传递(空的字符串)

4、路由组件可不可以传递props数据?

答、可以的,三种写法

this.$router.push({name:"search",params:,query:{k:this.keyword.toUpperCase()}})

Q.E.D.