在vue项目中终会遇到需要父组件的按钮或操作控制重新挂载子组件的需求,我在新项目中就遇到这种需求。真实场景是父组件的早,中,晚三个按钮(代表三个时间段)来控制子组件的table表格列的动态加载。
子组件的显示隐藏用指令v-if控制,点击父组件的三个按钮,可以控制子组件的显示隐藏,但是子组件不会重新执行生命周期,重新挂载;如图:没有操作按钮时
点击中按钮时,也没有刷新,如图;
就这个问题,在子组件加上key唯一项即可;
没改前,子组件使用代码:
<ob-tab v-if="showTab" :selectedDate="now" :classType="classType"></ob-tab> 改之后代码: <ob-tab v-if="showTab" :selectedDate="now" :classType="classType" :key="new Date().getTime()"></ob-tab> 只是给子组件加了:key="new Date().getTime()"的唯一值;下面看效果,如图:![](https://www.icode9.com/i/l/?n=20&i=blog/2486977/202109/2486977-20210903114616498-876873254.png)
加入:key="new Date().getTime()"代码后,子组件的table可以正常重载了
标签:vue,操作控制,key,按钮,组件,挂载,如图 来源: https://www.cnblogs.com/Hellen-Sun/p/15222480.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。