平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“关于row-click和current-change的用法及说明”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际使用顺序,把思路、关键写法和容易踩坑的地方讲清楚,方便你直接对照操作。
一、row-click和current-change官方文档的采用介绍
1.row-click
当表格某一行被点击时会触发该事件,
参数:
rowcolumnevent
2.current-change
当表格的当前行发生变化的时候会触发该事件,
参数:
currentRowoldCurrentRow
二、问题和解决
1.需求
落到代码里,有四个表,A表、B表、C表、D表,B表与A表联动,C表与B表联动,D表与C表联动,
即:
点击A表某一行时,B表展示该点击行相关的数据,C、D表同理
2.问题
采用row-click事件
落到代码里,点击A表第一行时,B表展示A表第一行相关数据,C表却展示不出来与B表第一行相关数据(初始默认焦点在第一行);
然后点击B表第一行,C表才能展示B表第一行相关数据;
实际处理时,接着点击A表第二行,这时候假设B表没有A表第二行相关数据,也就是B表此时数据为空,那么会发现C表依旧展示了B表第一行的相关数据,此时C表应该是无数据才对
3.解决
采用current-change事件
在这个场景下,点击A表第一行时,B表展示A表第一行相关数据,同时C表也展示了B表第一行相关数据(初始默认焦点在第一行);
结合项目来看,因为C表已经展示数据了,所以就直接点击A表第二行,此时B表展示A表第二行相关数据,这时候同样假设B表没有A表第二行相关数据,会发现C表也正常的没有数据展示了
总结
row-click,是只有当点击行的时候才会触发,如果没有点击行,只是行数据或行焦点改变,是无法触发该事件;
current-change,是当前行变化时触发,即使不点击某行,只要行数据或行焦点改变了,就会触发该事件,当然也包括“点击”不同行时,也会触发该事件
从实现思路看,所以,有时候current-change可以直接替代row-click去采用
落到代码里,总的来说,row-click和current-change这部分内容适合结合实际项目边做边理解。先抓住核心思路,再逐步补上细节和边界处理,最后效果会更稳定,也更容易复用。
