Vue2中检测数组变化的限制和解决方法
vue2用下标设置数组没效果
- arr = [1,2] arr[0] = 0,页面上显示的arr并没有修改(如果对应下标是原始值;若是引用值)
- 解决1:Vue.Set
- 解决2:arr.splice (Vue会劫持splice方法) Vue2对对象是循环defineProperty(递归、深度)set时通知dep.notify();对于数组则是重写数组7个方法(push、pop、shift、unshift、splice、sort、reverse)时通知dep.notify();
<div id="app">
{
{
arr[0].a }}
{
{
arr[1].a }}
</div>
<script>
var app = new Vue(