老师请解答
对于生命周期函数 activated、deactivated
和router-links、keep-alive之间的关系不是很清楚
正在回答
同学你好,不是的。router-link只是用来设置跳转地址的,keep-alive是用来包裹组件的,不是用来包裹跳转链接的。例如前面所说的城市列表,是点击城市这个按钮跳转的,而跳转的这个具体的组件(城市列表),用keep-alive包裹。因为路由规定路,切换的组件是渲染到router-view中,即keep-alive包裹router-view。
案例中也使用到了,如下图所示。还是建议同学能够自己看视频的时候多练习,这样印象更加深刻哦~
如果我的回答帮到了你,欢迎采纳,祝学习愉快~
同学你好,问题解答如下:
1.组件之间切换会导致重新渲染,例如从组件A切换到组件B,那么组件B要重新创建并渲染到页面。也就是组件B从创建之前到渲染在页面,以及它更新会有一系列的生命周期(生命周期可复习之前课程,地址:https://class.imooc.com/lesson/1447#mid=33308)。从组件B切换到组件A,那么组件B就会销毁,下次切换的时候就会重新创建渲染。
如果每次请求都要重新渲染,从性能上考虑是不好的。keep-alive是用来缓存组件的,即把组件包裹起来,就能缓存组件,切换到其他组件时就不会被销毁了。
2.上面说了,一个组件从创建到渲染会经历一系列的生命周期。但使用了keep-alive之后,组件不会重新创建了,所以它的生命周期就失效了。取而代之的就是activate和deactivated。
activate是在被包裹组件被激活的状态下使用的生命周期钩子,deactivated是在被包裹组件停止使用时调用。
3.router-link是设置路由跳转链接的,例如有一个按钮城市,点击城市会跳转到城市链接,那么城市就可以使用router-link包裹起来,并设置具体的路由url。router-link在浏览器中会默认渲染成a标签,点击时,就会跳转到指定路由页面了。
建议同学做一做课程案例,或者下载源码去看一看,会帮助自己更好的理解。
如果我的回答帮到了你,欢迎采纳,祝学习愉快~
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星