VUE中的无限循环代码解析
程序员文章站
2022-07-06 20:54:30
代码如下所示:
代码如下所示:
<template> <div id=""> <ul v-for="(item,index) in listaaa"> <li v-if='dealfun(item.cdate,index)'>{{item.cdate}}</li> </ul> </div> </template> <script> export default { name: "", data(){ return { listaaa: [{ cdate: '123' }, { cdate: '456' }, ], flagname: '' } }, methods: { dealfun(arg, index) { console.log('---------------------------') if (arg == this.flagname) { return false } else { this.flagname = arg return true } } }, } </script> <style scoped> </style>
导致无限循环的原因:flagname改变导致视图更新,视图更新又导致 dealfun()函数不停执行,进而flagname再次更新;循环往复;
解决办法:(使用全局变量)
<template> <div id=""> <ul v-for="(item,index) in listaaa"> <li v-if='dealfun(item.cdate,index)'>{{item.cdate}}</li> </ul> </div> </template> <script> var flagname; export default { name: "", data(){ return { listaaa: [{ cdate: '123' }, { cdate: '456' }, ], // flagname: '' } }, methods: { dealfun(arg, index) { console.log('---------------------------') if (arg == flagname) { return false } else { flagname = arg return true } } }, } </script> <style scoped> </style>
总结
以上所述是小编给大家介绍的vue中的无限循环代码解析,希望对大家有所帮助
上一篇: EL表达式截取字符串的函数说明