情况描述:
    通过点击事件触发排序方法,对el-table绑定的tableData进行排序,排序完成之后,tableData数据改变,但是el-table视图没有更新。
    (用watch监听,打印tableData,看到tableData已经排序完成,视图层面并未发生改变)

    这是一个vue的问题,不是element-ui的问题。

    vue的监听有点奇怪,数据与视图双向绑定的时候,如果绑定的是数组array,
    利用array[index] = newValue 这种直接赋值的方法改变数组array中的某一项item的值,视图是不会改变的。
    image.png
    对于这种情况(仅改变array中一个item的值,且让视图更新),
    vue的官方给了一个$set方法来处理。
    vm.$set(vm.items, indexOfItem, newValue) vm是vue的实例名称
    实际上在应用的时候,可以用下面这种方式,this指向实例。
    this.$set( this.tableData ,index, newItemData )

    官方的样例是处理array中某个item的值改变,并不解决我们这里这个排序遇到的问题。
    对这个排序完成之后,视图不改变的情况,最简单的解法,就是下面这句:
    this.``tableData`` ``=`` ``this``.``tableData``.``slice``(0);
    让tableData的绑定的数组变为新的内存地址,这样视图就会刷新了。

    奇怪的特性
    在tableData中push一个item,(这个时候array的地址没变)视图会更新。
    但是调整item的顺序,视图不会更新。
    用赋值的方式改变item中的数据,视图不会更新。