解决vue中的无限循环问题


Posted in Javascript onJuly 27, 2020

项目中遇到了这样一个问题:每一种产品有对应的服务费,每一个商家有多种商品要单独计算每一家的服务费,最后汇总总的服务费用。我直接写了一个方法来计算出每个商家和总的服务费用并return出来。如果不看控制台的话运行是没问题的。但是控制台报了无限循环的错误。

解决vue中的无限循环问题

下面是错误代码

html:

解决vue中的无限循环问题

js:

解决vue中的无限循环问题

这里会出现无限循环的原因是数据更新触发计算方法来更新视图,视图更新又反过来触发这个方法更新数据。所以尽量不要直接在绑定的数据上使用方法来绑定。找到问题后下面就是解决办法。

因为选中商品后就要重新计算价格。所以我将选中的商品添加到data里面

解决vue中的无限循环问题

然后通过侦听器监听totalBox的变化

解决vue中的无限循环问题

当totalBox变化后在执行计算方法。这样就避免一直来回计算的问题

解决vue中的无限循环问题

补充知识:vue 排序无限循环问题解决

在vue里对每个数组排序,会出现无限循环的问题,我认为的原因是:

vue动态监听data里数组的变化,数组刚一排序发生变化,vue立马重新执行排序导致无限循环。

解决问题:

1、将要排序的数组命名为全局变量,这样不受vue的监听

2、全局数组赋值vue里的数组时,不要使用=号,这样只是把全局数组的地址指向vue数组地址(用遍历vue数组,push进全局数组里)

代码片段 对数组对象属性进行排序(**************************为解决思路):

var sloveSortList = []; //解决vue中数组排序无限循环的问题 **************************

export default {
data() {
return {
    showSectionList: [], //界面需要显示的断面,还没有进行排序
watch:{

 //列表发生变化
showSectionList: function(){
//传递点位列表数据,给父级reallndex.vue页面
this.leftshowSection(this.showSectionList);

//把showSectionList数组赋值给sloveSortList,如果直接=,相当于引用地址,排序的时候vue监听showSectionList会出现无限循环。
sloveSortList = [];
for(var i=0; i < this.showSectionList.length; i++ ){
sloveSortList.push(this.showSectionList[i]);    **************************
}
//把变化了的列表赋值到准备要排序的sortShowSectionData上
this.sortShowSectionList = this.sortShowSectionData()  **************************

//赋值排好序的数组,为了搜索使用
this.beforeSearchList = this.sortShowSectionList;
//默认选中第一个断面传递给父组件
this.showSectionClick(0);
}

methods: {
//列表排序方法
sortShowSectionData:function(){
var factorNumber = this.nowFactor.factor_code+ 'Level';
if(this.nowFactor.factor_code == undefined || this.nowFactor.factor_code == 'NaN' || this.nowFactor.factor_code == null){
return
}
//对列表进行了排序
var searchList = sloveSortList.sort((a,b)=>{      **************************
var factorNumber = this.nowFactor.factor_code;
if(parseFloat(a[factorNumber]) > parseFloat(b[factorNumber])){
return -1;
} else if(parseFloat(a[factorNumber]) == parseFloat(b[factorNumber])){
return 0;
}else{
return 1;
}
});

return searchList;
},

以上这篇解决vue中的无限循环问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 颜色选择器(兼容firefox)
Mar 05 Javascript
JavaScript的public、private和privileged模式
Dec 28 Javascript
jQuery学习笔记之jQuery选择器的使用
Dec 22 Javascript
js获取当前页面路径示例讲解
Jan 08 Javascript
Javascript学习笔记之相等符号与严格相等符号
Nov 23 Javascript
纯JavaScript实现的分页插件实例
Jul 14 Javascript
js判断日期时间有效性的方法
Oct 24 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
May 13 Javascript
ES6中Generator与异步操作实例分析
Mar 31 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
Nov 17 Javascript
JavaScript基于面向对象实现的猜拳游戏
Jan 03 Javascript
JS如何实现动态添加的元素绑定事件
Nov 12 Javascript
Element MessageBox弹框的具体使用
Jul 27 #Javascript
Vue 组件复用多次自定义参数操作
Jul 27 #Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
Jul 27 #Javascript
Element InfiniteScroll无限滚动的具体使用方法
Jul 27 #Javascript
vue中父子组件传值,解决钩子函数mounted只运行一次的操作
Jul 27 #Javascript
Element Alert警告的具体使用方法
Jul 27 #Javascript
Element Badge标记的使用方法
Jul 27 #Javascript
You might like
全国FM电台频率大全 - 11 浙江省
2020/03/11 无线电
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
2013/04/13 PHP
php中jpgraph类库的使用介绍
2013/08/08 PHP
destoon调用自定义模板及样式的公告栏
2014/06/21 PHP
php使用iconv中文截断问题的解决方法
2015/02/11 PHP
php中有关合并某一字段键值相同的数组合并的改进
2015/03/10 PHP
YII框架关联查询操作示例
2019/04/29 PHP
JavaScript判断图片是否已经加载完毕的方法汇总
2016/02/05 Javascript
js仿百度登录页实现拖动窗口效果
2016/03/11 Javascript
d3.js中冷门却实用的内置函数总结
2017/02/04 Javascript
原生JS实现N级菜单的代码
2017/05/21 Javascript
VUE元素的隐藏和显示(v-show指令)
2017/06/23 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
2017/12/14 Javascript
vue全局使用axios的方法实例详解
2018/11/22 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
详解如何使用React Hooks请求数据并渲染
2020/10/18 Javascript
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
Django小白教程之Django用户注册与登录
2016/04/22 Python
python reverse反转部分数组的实例
2018/12/13 Python
Python数据类型之Number数字操作实例详解
2019/05/08 Python
在django中form的label和verbose name的区别说明
2020/05/20 Python
Python+OpenCV图像处理—— 色彩空间转换
2020/10/22 Python
python工具——Mimesis的简单使用教程
2021/01/16 Python
应用艺术毕业生的自我评价
2013/12/04 职场文书
群众路线剖析材料
2014/02/02 职场文书
教师演讲稿大全
2014/05/16 职场文书
财务管理专业求职信
2014/06/11 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
法人委托书范本格式
2014/09/15 职场文书
优秀英文求职信范文
2015/03/19 职场文书
2015年主婚人婚礼致辞
2015/07/28 职场文书
2016年师德学习心得体会
2016/01/12 职场文书
个人向公司借款协议书
2016/03/19 职场文书
导游词之西江千户苗寨
2019/12/24 职场文书
浅谈node.js中间件有哪些类型
2021/04/29 Javascript
基于Python实现射击小游戏的制作
2022/04/06 Python