Change data in vue

To solve the problem now is that too much background to my data, and I all displayed on the page, then it too much, therefore, is a plus  for a change button, each click will change five different data  

First: On the page

 <div class="identify" v-if="item.behaviorList.length>0">
               <div style="display: flex;justify-content: space-between">
                 <p>相关行为</p>
                 <div class="change" @click="change_data(item)"><img src="@/assets/img/change.png" class="magnifier">换一换</div>
               </div>
               <span  v-for="(info,index) in item.behaviorListFive " :key="item +displayname"
                      style="cursor:pointer"
                      @click="searchChildProblem(info)" >
                 <img src="@/assets/img/big.png" class="magnifier">
                 <span style="color: #0f7ffe;font-size: 14px">{
   
   {info.displayname }}</span>
               </span>

               <i class="bottom-line"></i>
            </div>

The second is to process data from the background 

  watch: {
      searchResult(searchResultValue) {
       
            //相关行为
             //取item.behaviorList前5个数据,放到新字段item.behaviorListFive
             item.behaviorListFive = []
             item.behaviorListPage = 1 //当前是1页
             item.behaviorList.forEach((m,n)=>{
               if(n<5){
                 item.behaviorListFive.push(m)
               }
             })
            // 相关推荐
             item.suggestListFive = []
             item.suggestListPage = 1 //当前是1页
             item.suggestList.forEach((m,n)=>{
               if(n<5){
                 item.suggestListFive.push(m)
               }
             })

           })
         }
         this.pageRecode =  arr;//行为和科目数组
      }
    },

The main code here is // the part of related behavior

The third step is the method 

 /**
       * item一级的数据 相关行为
       * */
      change_data (item) { //每次点击换一批触发这个方法
          let arr = item.behaviorList//换一换的总数据
          let page = item.behaviorListPage //页码
          let tol_num = arr.length //总数据有多少个
          //如果总共数量小于等于5条数据,换一换没有数据了,
          if (tol_num <= page*5) {
            //如果没有数据就从第一页开始

            this.pageRecode.forEach(mmm=>{
              if(mmm == item){
                mmm.behaviorListFive = []
                mmm.behaviorListPage = 1 //页码=1
                mmm.behaviorList.forEach((n,i)=>{
                  if(i<5 ){ //回到初始化
                    mmm.behaviorListFive.push(n)
                  }
                })
              }
            })

          }else{
            page++
            //更改数据
            this.pageRecode.forEach(mmm=>{
              if(mmm == item){
                mmm.behaviorListFive = []
                mmm.behaviorListPage++ //页码增加1
                mmm.behaviorList.forEach((n,i)=>{
                  if( i<page*5 && i>=(page-1)*5 ){ //5-9  用page==2代入
                    mmm.behaviorListFive.push(n)
                  }
                })
              }
            })
          }
        //刷新
        this.uploadDiv = false;
        this.$nextTick(()=>{
          this.uploadDiv = true;
        })

      },

Mainly look at the method 

Guess you like

Origin blog.csdn.net/weixin_44727080/article/details/112241809