开发者社区> 问答> 正文

直接给一个数组项赋值,Vue 能检测到变化吗?

已解决

直接给一个数组项赋值,Vue 能检测到变化吗?

展开
收起
pandacats 2019-12-10 11:04:06 1218 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    由于 JavaScript 的限制,Vue 不能检测到以下数组的变动:

    当你利用索引直接设置一个数组项时,例如:vm.items[indexOfItem] = newValue

    当你修改数组的长度时,例如:vm.items.length = newLength

    为了解决第一个问题,Vue 提供了以下操作方法:

    // Vue.set

    Vue.set(vm.items, indexOfItem, newValue)

    // vm.$set,Vue.set的一个别名

    vm.$set(vm.items, indexOfItem, newValue)

    // Array.prototype.splice

    vm.items.splice(indexOfItem, 1, newValue)

    为了解决第二个问题,Vue 提供了以下操作方法:

    // Array.prototype.splice

    vm.items.splice(newLength)

    2019-12-10 11:04:22
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Vue.js 在前端服务化上的探索与实践 立即下载
Vue.js在前端服务化上的实践与探索 立即下载
利用编译将 Vue 组件转成 React 组件 立即下载

相关实验场景

更多