资讯专栏INFORMATION COLUMN

Vue 改变数据,页面不刷新的问题

saucxs / 2473人阅读

摘要:更多文章最近在用开发一个网站,使用组件时,发现修改完数据,有时候会延迟一两秒,页面才会发生变化。

更多文章

最近在用 element-ui 开发一个网站,使用 table 组件时,发现修改完数据,有时候会延迟一两秒,页面才会发生变化。

看了一下代码,发现修改数据的代码是这样的

// popupData是修改的数据,修改完后,赋值给对应的表格数据
this.tableData[this.currentRow] = this.popupData
注意事项(以下内容摘自官方文档)

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

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

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

举个例子:

var vm = new Vue({
  data: {
    items: ["a", "b", "c"]
  }
})
vm.items[1] = "x" // 不是响应性的
vm.items.length = 2 // 不是响应性的

为了解决第一类问题,以下两种方式都可以实现和 vm.items[indexOfItem] = newValue 相同的效果,同时也将在响应式系统内触发状态更新:

// Vue.set
Vue.set(vm.items, indexOfItem, newValue)
// Array.prototype.splice
vm.items.splice(indexOfItem, 1, newValue)

你也可以使用 vm.$set 实例方法,该方法是全局方法 Vue.set 的一个别名:

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

为了解决第二类问题,你可以使用 splice

vm.items.splice(newLength)

所以,解决方法就是用 Vue.set 来代替直接赋值

this.$set(this.tableData, this.currentRow, this.popupData)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/104678.html

相关文章

  • 前端路由简介以及vue-router实现原理

    摘要:后端路由简介路由这个概念最先是后端出现的。前端路由模式随着的流行,异步数据请求交互运行在不刷新浏览器的情况下进行。通过这些就能用另一种方式来实现前端路由了,但原理都是跟实现相同的。 后端路由简介 路由这个概念最先是后端出现的。在以前用模板引擎开发页面时,经常会看到这样 http://www.xxx.com/login 大致流程可以看成这样: 浏览器发出请求 服务器监听到80端口(或4...

    tuomao 评论0 收藏0
  • 面试官常问——vue

    摘要:如果要相应状态改变,通常最好使用计算属性或取而代之。那解决问题的思路便是在改变的情况下,保证页面的不刷新。后面值的变化,并不会导致浏览器向服务器发出请求,浏览器不发出请求,也就不会刷新页面。 1.vue生命周期2.vue 双向绑定原理3.vue router原理4.vue router动态路由 1.vue 生命周期钩子 showImg(https://segmentfault.com/...

    BlackMass 评论0 收藏0
  • 面试官常问——vue

    摘要:如果要相应状态改变,通常最好使用计算属性或取而代之。那解决问题的思路便是在改变的情况下,保证页面的不刷新。后面值的变化,并不会导致浏览器向服务器发出请求,浏览器不发出请求,也就不会刷新页面。 1.vue生命周期2.vue 双向绑定原理3.vue router原理4.vue router动态路由 1.vue 生命周期钩子 showImg(https://segmentfault.com/...

    xingqiba 评论0 收藏0
  • 面试官常问——vue

    摘要:如果要相应状态改变,通常最好使用计算属性或取而代之。那解决问题的思路便是在改变的情况下,保证页面的不刷新。后面值的变化,并不会导致浏览器向服务器发出请求,浏览器不发出请求,也就不会刷新页面。 1.vue生命周期2.vue 双向绑定原理3.vue router原理4.vue router动态路由 1.vue 生命周期钩子 showImg(https://segmentfault.com/...

    quietin 评论0 收藏0
  • vue2实践(持续更新)

    摘要:记录一些小技巧和踩过的坑由于本篇文章内容太多,导致编辑器有点卡,所以新开辟了一篇实践二,后续再这里更新。组件的生命周期函数是在标签里的数据发生变化时候触发数据可能更新了,但是没有绑定到上面的话,不会调用钩子函数。 记录一些小技巧和踩过的坑 由于本篇文章内容太多,导致SF编辑器有点卡,所以新开辟了一篇 vue2实践(二),后续再这里更新。 1. props 带不带冒号的区别 ...

    n7then 评论0 收藏0

发表评论

0条评论

saucxs

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<