2
代碼:(vue2.0,VUE路由器)vuejs中的Array.prototype.splice和arr.splice有什麼區別?
<template>
<a v-for="apiItem in allApis" href="#"></a>
</template>
<script>
computed: mapGetters([
'allApis'
]),
</script>
和store/modules
const mutations {
myMutation(state) {
state.apis.splice(0, 1) // A
//Array.prototype.splice.call(state.apis, 0, 1); //B
}
}
const getter = {
allApis: (state) => {
return state.apis
}
}
export default {
state,
getters,
actions,
mutations
}
的line A
將改變allApis
和更新視圖
但line B
不會改變allApi
並更新視圖;
你是對的,但是否意識到,你錯過了一個重要的觀點,在你所指的源代碼中,'export const arrayMethods = Object.create(arrayProto)'正在爲數組創建一個新的原型,所以使用'Array.prototype'會忽略vue定義的行爲。 –
@潘俊傑潘俊傑是的,這就是我在這裏指出的,你得到這些額外的功能,你沒有在'Array.prototype'中得到這些功能,可能我沒那麼清楚,將明確添加它。 – Saurabh