项目里的换一批功能
export default{ data(){ return{ index:[1,2,3]//首先声明一个数组,数据的长度就是代表需要显示几件商品(这里是3件) } }, computed:{ someGoods(){//页面一进来通过拿到的总数据,来取出3件商品做初始渲染(还没点换一批) let arr=[]//声明一个新的空数组 // console.log(this.$store.state.goodsList) if(this.$store.state.goodsList.length>0){ for(let i=0;i<3;i++){//循环3次 arr.push(this.$store.state.goodsList[this.index[i]]) //在总数据里拿出3件要渲染的商品,放进新的数组里,做初始渲染 } // arr.push(this.$store.state.goodsList[this.index[0]]) // arr.push(this.$store.state.goodsList[this.index[1]]) // arr.push(this.$store.state.goodsList[this.index[2]]) } return arr } }, methods:{ add(id){ this.$store.commit('addShop',id) console.log(id) }, change(){//点击了换一批 this.index=[]//把index数组设为空数组 do{//使用do{}while 或while循环(循环次数不明确,有时可能会重复) let num=Math.floor(Math.random()*((this.$store.state.goodsList.length-1)-0+1)+0) //生成从0至总数据长度的随机数 if(this.index.indexOf(num)<0){//看看新的index的数组是否有这个商品 this.index.push(num)//没有就放进index数组,有的话就不放(去重) } }while(this.index.length<3)//只要不够需要显示商品的数量就循环 } }, }