JavaScript作用域范围跟其他语言比如PHP,C等的块作用不同,它是函数级别的。举个例子就知道了。

上面这个代码块会打印五个  5 出来,而我们预想的结果是打印 0 1 2 3 4。

 

之所以会这样,是因为 setTimeout 中的 i 是对外层 i 的引用。当 setTimeout 的代码被解释的时候,运行时只是记录了 i 的引用,而不是值。而当 setTimeout 被触发时,五个 setTimeout 中的 i 同时被取值,由于它们都指向了外层的同一个 i,而那个 i 的值在迭代完成时为 5,所以打印了五次  5

为了得到我们预想的结果,我们可以把 i 赋值成一个局部的变量,从而摆脱外层迭代的影响。

 

 

 

vue-datasource 在show后面加了一个input输入框。
show后面的输入框,输入每页的条目数,立刻刷新。但是有一个问题就是v-model的双向绑定及时刷新。比如输入15,它会先检索1,再处理15.
这个过程使用过vue-select效果不是很好放弃了,还有就是局部焦点改变时进行查询,给人感觉就变卡顿的现象, (v-debounce ) ,所以就放弃了。
最后运用的是下面的代码:

这样延迟个500ms。感觉就流畅度了。