vue计算属性时v-for处理数组时遇到的一个bug问题


Posted in Javascript onJanuary 21, 2018

问题

bug: You may have an infinite update loop in a component render function 无限循环

1.需要处理的数组(在 ** ssq **里):

bonus_code: ['01', '19', '25', '26', '27', '33', '10']

2.计算属性 computed:

ssqRed: function() {
return this.ssq.bonus_code.splice(0, 6)
},
ssqBlue: function() {
return this.ssq.bonus_code.splice(6, 7)
}

3.v-for 代码:

<em class="red-ball tac mr5 fl" v-for="(item, index) in ssqRed">{{ item }}</em>
<em class="blue-ball tac mr5 fl" v-for="(item, index) in ssqBlue">{{ item }}</em>

4.最终结果我想把数组前6个数渲染成红色球,最后一个(也就是第7个)渲染成蓝色。

解答

我已经在 SegmentFault上提问,地址:vue计算属性computed同时操作一个数组

我已采纳答案,将代码改成:

ssqRed: function() {
 return this.ssq.bonus_code.slice(0, 6)
},
ssqBlue: function() {
 return this.ssq.bonus_code.slice(6, 7)
}

问题就在于自己没搞清楚 splice会对原数组造成改变。

在寻找解决方案时,朋友少晖教给我一种更好的解决方式,很感谢

即类名判断

1.如果数组大小已知,就做一个类名判断,索引大于多少展示蓝色的类名就行了;

2.处理后的 html代码:

<em v-for="(item, index) in ssq.bonus_code" :class="['tac','mr5','fl',index>5?'blue-ball':'red-ball']" >{{ item }}</em>

3.增加的代码:

index>5?'blue-ball':'red-ball'

总结

以上所述是小编给大家介绍的vue计算属性时v-for处理数组时遇到的一个bug问题,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
JavaScript 计算当天是本年本月的第几周
Mar 22 Javascript
js 处理数组重复元素示例代码
Dec 27 Javascript
Javascript实现带关闭按钮的网页漂浮广告代码
Jan 12 Javascript
js 通过cookie实现刷新不变化树形菜单
Oct 30 Javascript
使用jquery制作弹出框效果
Apr 03 Javascript
js禁止页面刷新与后退的方法
Jun 08 Javascript
JS优化与惰性载入函数实例分析
Apr 06 Javascript
vue自定义过滤器创建和使用方法详解
Nov 06 Javascript
jQuery实现基本隐藏与显示效果的方法详解
Sep 05 jQuery
js删除对象/数组中null、undefined、空对象及空数组方法示例
Nov 14 Javascript
node.js ws模块搭建websocket服务端的方法示例
Apr 25 Javascript
15个值得收藏的JavaScript函数
Sep 15 Javascript
Angular17之Angular自定义指令详解
Jan 21 #Javascript
laravel5.3 vue 实现收藏夹功能实例详解
Jan 21 #Javascript
详解node.js中的npm和webpack配置方法
Jan 21 #Javascript
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
Jan 21 #jQuery
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
Jan 20 #Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
Jan 20 #Javascript
浅谈vue引入css,less遇到的坑和解决方法
Jan 20 #Javascript
You might like
xajax写的留言本
2006/11/25 PHP
PHP 中关于ord($str)&amp;gt;0x80的详细说明
2012/09/23 PHP
PHP删除HTMl标签的三种解决方法
2013/06/30 PHP
ThinkPHP3.2.3实现分页的方法详解
2016/06/03 PHP
PHP中读取文件的几个方法总结(推荐)
2016/06/03 PHP
PHP读取文件,解决中文乱码UTF-8的方法分析
2020/01/22 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
用倒置滤镜把div倒置,再把table倒置。
2007/07/31 Javascript
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
2012/02/03 Javascript
javascript如何判断输入的url是否正确
2014/04/11 Javascript
JS使用eval解析JSON的注意事项分析
2015/11/14 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
2016/09/24 Javascript
javascript删除html标签函数cIsHTML
2017/01/09 Javascript
js的三种继承方式详解
2017/01/21 Javascript
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
2017/06/30 Javascript
JS/jQuery实现获取时间的方法及常用类完整示例
2019/03/07 jQuery
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
[01:01:18]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#2COL VS LGD
2016/03/03 DOTA
Python编程使用tkinter模块实现计算器软件完整代码示例
2017/11/29 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
Python Scrapy多页数据爬取实现过程解析
2020/06/12 Python
CSS3 box-sizing属性
2009/04/17 HTML / CSS
html5构建触屏网站之网站尺寸探讨
2013/01/07 HTML / CSS
Bluebella美国官网:英国性感内衣品牌
2018/10/04 全球购物
无刑事犯罪记录证明
2014/09/18 职场文书
党支部党的群众路线对照检查材料
2014/09/24 职场文书
走进毛泽东观后感
2015/06/04 职场文书
催款函范文
2015/06/24 职场文书
委托书范本格式
2019/04/18 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书
python 中[0]*2与0*2的区别说明
2021/05/10 Python
python中如何对多变量连续赋值
2021/06/03 Python
python中%格式表达式实例用法
2021/06/18 Python
Mysql如何实现不存在则插入,存在则更新
2022/03/25 MySQL