vue本地没事放到服务器上无限循环,解决vue中的无限循环问题

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

5ab4fc542f7e0d69385e5e6ab74d37f9.png

下面是错误代码

html:

f2c1a429d1c6a94e0dc7d83ca8ddfc02.png

js:

c900df788e2abed67117d22bd8315af6.png

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

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

53859cf9e7cc5cdc2db5ef45538b6028.png

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

32b062cf0564a0593dc7a9fbe1612a86.png

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

3d2250a9fdbe5aba8499c683790e1830.png

补充知识: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中的无限循环问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552428.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

壁式框架内力计算_4种类型剪力墙的计算要点

剪力墙又称抗风墙、抗震墙或结构墙。房屋或构筑物中主要承受风荷载或地震作用引起的水平荷载和竖向荷载(重力)的墙体&#xff0c;防止结构剪切(受剪)破坏。又称抗震墙&#xff0c;一般用钢筋混凝土做成。它分平面剪力墙和筒体剪力墙。平面剪力墙用于钢筋混凝土框架结构、升板结…

片源系统服务器,OUO NAS10主控界面评测

OUO NAS10主控界面评测■OUO NAS10主控界面评测OUO NAS10采用了高集成度的芯片&#xff0c;功耗比较低&#xff0c;整机满载情况下也不会超过9W。不过他的主控界面看起来还是比较简单易懂的&#xff0c;由于本身自带了linux的操作系统&#xff0c;还是比较容易上手的。附送光盘…

解锁设备_无师自通解锁新设备抗击疫情

随着春节假期接近尾声&#xff0c;一线企业复工复产&#xff0c;春运迎来全面返程客流高峰&#xff0c;为应对返程客流&#xff0c;做好疫情防控工作&#xff0c;哈车管内各站全面组织积极应对&#xff0c;做好进出站旅客测温&#xff0c;加强对进出站旅客体温筛查&#xff0c;…

GPS无线视频服务器,宏电环卫车无线视频监控与GPS定位系统设计方案.docx

Connecting Things环卫车3G/4G视频监控及GPS定位系统解决方案市宏电技术股份Shenzhen Hongdian Technologies Corporation.2015年7月目录 TOC \o "1-3" \h \z \uHYPERLINK \l "_Toc2914" 第一章 系统概述 PAGEREF _Toc2914 4HYPERLINK \l "_Toc5154&q…

css选择器权重排序_css选择器优先级高低排列_css样式权重计算和!important属性

首先我们需要知道选择器的类型有这些&#xff1a;选择器栗子ID#idclass.class标签p属性[typetext]伪类:hover伪元素::first-line相邻选择器、子代选择器>而这些css的选择器是有权重(即优先级)的&#xff0c;在不同选择器的样式出现冲突时候&#xff0c;会采用权重高的选择器…

python webdriver save_Python + Selenium +Chrome 批量下载网页代码修改【新手必学】

Python Selenium Chrome 批量下载网页代码修改主要修改以下代码可以调用 本地的 user-agent.txt 和 cookie.txt来达到在登陆状态下 批量打开并下载网页&#xff0c;以网页 ID 来保存为网页文件名PS:很多人在学习Python的过程中&#xff0c;往往因为遇问题解决不了或者没好的教…

sql盲注特点_SQL注入的特点及危害详解

http://www.maiziedu.com/SQL注入的特点及危害详解在网站安全性方面&#xff0c;我们经常会遇到各种各样的安全性问题&#xff0c;SQL注入就是其中最常见的一种&#xff0c;那SQL注入到底有哪些特点呢&#xff1f;一起来看看吧。SQL注入攻击的主要特点1、变种极多有经验的攻击者…

主从式网络的优点_贸泽电子原创开发板大赛【创意奖作品】物联网开发板做成主从机形式,是创意还是多此一举?...

没有创意&#xff0c;竞赛还有什么意义&#xff1f;作为汇集了国内工程师中的一批顶尖高手的设计大赛&#xff0c;本届贸泽电子原创开发板大赛自然少不了“最佳创意奖”&#xff0c;今天&#xff0c;就让我们来看看工程师大开脑洞的获奖作品有何稀奇&#xff1f;奖创意奖《基于…

es 吗 查询必须有sort_ElasticSearch DSL之From/Size,Sort

从这篇文章开始&#xff0c;我们要进入DSL的学习。使用url搜索仅仅是个开始&#xff0c;ES还提供带有查询DSL的请求体用于更高级的搜索。在这些类型的搜索中有大量可选项&#xff0c;可以混合和匹配不同的选项以获得所需的结果。DSL还能根据查询子句的过滤和查询上下文&#xf…

docker mysql配置 丢失_Ubuntu16.04服务器环境配置 – Docker、MySQL、Redis

Ubuntu16.04 服务器环境配置 – Docker、MySQL、Redis安装Docker1. 卸载旧版本sudo apt-get remove docker docker-engine docker.io2. 安装 https 相关的软件包sudo apt-get update # 先更新一下软件源库信息sudo apt-get install apt-transport-https ca-certificates cur…

mysql主从配置_MySQL主从配置详解

主服务器数据库的每次操作都会记录在其二进制文件mysql-bin.xxx(该文件可以在mysql目录下的data目录中看到)中&#xff0c;从服务器的I/O线程使用专用账号登录到主服务器中读取该二进制文件&#xff0c;并将文件内容写入到自己本地的中继日志relay-log文件中&#xff0c;然后从…

mysql 复制方式_MySQL复制方法

MySQL的二进制日志&#xff0c;MySQL复制原理&#xff0c;MySQL主从模式搭建&#xff0c;MySQL双主模式搭建&#xff0c;MySQL级联模式搭建&#xff0c;MySQL半同步模式复制一、二进制日志1、概念MySQL的二进制日志(binary log)是一个二进制文件&#xff0c;主要用于记录修改数…

mysql 主键唯一,MySQL。关键表中的主键。唯一ID还是多个唯一键?

Primary key in relational tables. Composite primary key or unique primary key in those pure relational tables?Which design would you recommend to use in MySQL for high performance? See diagramTechnical advantages and disadvantages!Thanks everyone!解决方案…

mysql以user1登录_在mysql中创建用户后不能本地登录的解决方法

在安装完成MySQL后&#xff0c;我们通常添加拥有相应权限的普通用户用来访问数据库。在使用用户本地登录数据库的时候&#xff0c;经常会出现怎么登录也无法登录的情况,但是从其他的mysql客户端却可以登录。[rootmysql01 ~]# mysql -userver -p123456ERROR 1045 (28000): Acces…

mysql内部时区_一文解决MySQL时区相关问题

前言&#xff1a;在使用MySQL的过程中&#xff0c;你可能会遇到时区相关问题&#xff0c;比如说时间显示错误、时区不是东八区、程序取得的时间和数据库存储的时间不一致等等问题。其实&#xff0c;这些问题都与数据库时区设置有关&#xff0c;本篇文章将从数据库参数入手&…

制作 mysql的rpm文件_自制mysql.rpm安装包

RPM安装比源码更快更方便&#xff0c;更利于统一版本&#xff0c;省去了繁琐的编译过程&#xff0c;下面以制作mysql的rpm安装包为例。编译环境1、 安装rpm-build&#xff1b;检查是否配置rpm环境1 # sudo yum list | greprpm2 This system is not registered with RHN.3 RHN s…

mysql远程授权格式_MySQL远程访问授权

开启 MySQL 的远程登陆帐号有两大步&#xff1a;1、确定服务器上的防火墙没有阻止 3306 端口。MySQL 默认的端口是 3306 &#xff0c;需要确定防火墙没有阻止 3306 端口&#xff0c;否则远程是无法通过 3306 端口连接到 MySQL 的。如果您在安装 MySQL 时指定了其他端口&#xf…

mysql multi主从复制_mysqld_multi方式配置Mysql数据库主从复制

mysqld_multi设计用于管理在同一台机器上运行的多个mysqld进程&#xff0c;这些进程使用不同的socket文件并监听在不同的端口上。mysqld_multi可以批量启动、关闭、或者报告这些mysqld进程的状态。在这里我们通过这种方式来在同一个机器上启动多个数据库实例&#xff0c;并配置…

mysql 日志节点恢复_基于binlog二进制日志的MySQL恢复笔记

基于binlog二进制日志的MySQL恢复笔记刚好复习到这里&#xff0c;顺手做个小实验&#xff0c;记录下。总的操作流程&#xff1a;step0、关掉数据库的对外访问【防止用户操作继续写入这个库】step1、mysqlbinlog 导出相关时间段数据库的二进制日志step2、编辑today.sql找到误操作…

mysql中if在oracle怎么用_mysql和oracle的mybatis操作

1.Oracle、MySQL插入时返回下一个主键的操作Xml代码 Oracle&#xff1a;SELECT SEQ_ROLE.NEXTVAL AS ID FROM DUALinsert into ROLE(ID, NAME, CREATE, MODIFY) values (#{id}, #{name}, sysdate, sysdate)注意&#xff1a;这边的keyProperty"id"中"id"指的…