几年前,这样做是不好的做法
array = [];
因为如果数组被引用到某个地方,那么引用就不会被更新或者类似的东西.
正确的方法应该是array.length = 0;
无论如何,JavaScript现在已经更新了,有一个叫做Vue的框架.js
Vue无法捕捉到array.length = 0;
,因此该属性不会react .但它能捕捉array = [];
我们现在可以使用array = [];
吗,还是JavaScript仍然存在漏洞?
几年前,这样做是不好的做法
array = [];
因为如果数组被引用到某个地方,那么引用就不会被更新或者类似的东西.
正确的方法应该是array.length = 0;
无论如何,JavaScript现在已经更新了,有一个叫做Vue的框架.js
Vue无法捕捉到array.length = 0;
,因此该属性不会react .但它能捕捉array = [];
我们现在可以使用array = [];
吗,还是JavaScript仍然存在漏洞?
执行类似于myArray.splice(0)
的操作将清除数组中的内容,这也将是被动的:
Vue.config.devtools = false;
Vue.config.productionTip = false;
new Vue({
el: '#app',
data() {
return {
items: ["a", "b", "c"]
}
},
methods: {
flush() {
this.items.splice(0);
}
}
});
<link type="text/css" rel="stylesheet" href="//unpkg.com/bootstrap/dist/css/bootstrap.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.js"></script>
<div id="app" class="container">
<div v-for="i in items">{{i}}</div>
<button @click="flush"> flush</button>
</div>