要实现el-table中行的拖拽,对应到数据层面,就是table所绑定的数组元素的位置变换。实现中在处理完中间部分数据之后,将原数据删除,插入到新位置,如下:
//从this.steps中移除位置为oldIndex的元素,并将其存储在movedItem中
const movedItem = this.steps.splice(oldIndex, 1)[0];
//将这个元素插入到newIndex位置
this.steps.splice(newIndex, 0, movedItem);
这个table有一级子节点,从上到下移动根节点后,总是会把子节点留在上面,没有同步移动:
但是这时候打印出数据来看,this.steps的数据是正确的。所以,DOM没有及时响应更新。
调试过程:
这里做了2步操作,删除原节点和插入到新位置。
删除原节点后,上方红框中的3.1(对于数据2.1)的行应该消失。但是目前看没有消失,所以猜测是删除操作未生效,于是,先把插入到