今天在使用 Vue 开发过程中,前台控制台报了一个警告,经过一番百度,最终解决了问题,过程如下。

1
2
//控制台报错信息
vue.runtime.esm.js?2b0e:619 [Vue warn]: You may have an infinite update loop in watcher with expression "value"

控制台信息

  • 控制台警告错误如图:警告图片

原因

  • 报错是因为我要给 v-for 里边的一个数组类型的 item 排序,如果是普通的绑定,用计算属性是搞定的。然而,这个牵扯到传参,计算属性用起来就不那么省心了,只能乖乖写个方法。虽然正常渲染,但是报错了:

    经过一番百度,在vue issue 里边找到了尤大神的回复,不能直接用 sort() 函数进行排序。

解决方案

  1. 第一种:使用后台进行排序,前端只负责接收,展示。
  2. 第二种:将排序变量放入方法内,定义在局部变量里。

问题解决。

欢迎微信搜索【Java猿记】,关注回复【面试】获取免费面试资料。