(第一次分享,还有点小忐忑,如果哪里说的不对,请及时纠正哦~~)
----------------------------------------------------------------------------------------------
我写了一个打印按钮,点击按钮时会弹出打印框显示四张表格以及表格里面的数据(数据是后端传过来的),我本来是这样写的(如下图),如果是顺序执行 ,我这样写会倒置先打印后获取数据,就会造成的我表格获取不到数据。
---------------------------------------------------------------------------------------------------------------------------------
然后,我把它们的位置互换了,发现第一次点还是获取不到数据,一定要第二次点才可以获取到。噢!原来axios 是异步(简而言之就是不按顺序执行)。
所以我的理解是:当getList()在获取数据的时候,我的打印事件也执行了,所以我第一次获取不到数据,当我第二次点击打印按钮的时候(也就是在第一次getList()获取到数据之后),我就能获取到数据。
---------------------------------------------------------------------------------------------------------------------------------
后来,我就在getList()里使用了 this.$nextTick()方法,在数据获取完之后立即执行打印事件,在print事件里调用getList(),然后就实现了第一次点击就能获取到数据啦。
总结:更改数据后当你想立即使用js操作新的视图的时候就使用this.$nextTick()
---------------------------------------------------------------------------------------------------------------------------------
提出一个问题:我在created和mounted里调用getList()的时候,会报“数据不存在的错”,请问这是为什么?