当前位置: 移动技术网 > IT编程>脚本编程>vue.js > VUE中的无限循环代码解析

VUE中的无限循环代码解析

2017年12月12日  | 移动技术网IT编程  | 我要评论

代码如下所示:

<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中的无限循环代码解析,希望对大家有所帮助

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网