vue项目常用固定套路,改字段名,分页加载数据

30 篇文章 0 订阅
17 篇文章 0 订阅

vue项目常用固定套路

修改数据字段名(返回新数据) – map

描述:后台传过来的json数据,字段是xingming、sex,但是前端页面需要使用name、gender,于是需要对数据字段进行修改。

let persons = [
    {
        xingming: "杰克", age: 18, id: 5, sex: "男"
    },
    {
        xingming: "李雷", age: 20, id: 2, sex: "男"
    },
    {
        xingming: "韩梅梅", age: 16, id: 9, sex: "女"
    },
    {
        xingming: "汤姆", age: 16, id: 2, sex: "男"
    },
]

var data = persons.map(item => {
    return {
        name: item.xingming,
        gender: item.sex,
    }
})
console.log(data)
/*
[
  { name: '杰克', gender: '男' },
  { name: '李雷', gender: '男' },
  { name: '韩梅梅', gender: '女' },
  { name: '汤姆', gender: '男' }
]
*/

向数据内添加字段(修改原数据) – forEach 、map

描述:后台传过来的json数据,字段是xingming、sex,但是前端页面需要使用name、gender,于是需要对数据字段进行修改。

let persons = [
    {
        xingming: "杰克", age: 18, id: 5, sex: "男"
    },
    {
        xingming: "李雷", age: 20, id: 2, sex: "男"
    },
    {
        xingming: "韩梅梅", age: 16, id: 9, sex: "女"
    },
    {
        xingming: "汤姆", age: 16, id: 2, sex: "男"
    },
]

persons.forEach(item => {
    item.show = false
})
persons.map(item => {
    item.show = false
})
console.log(persons)
/*
[
  { name: '杰克', gender: '男' },
  { name: '李雷', gender: '男' },
  { name: '韩梅梅', gender: '女' },
  { name: '汤姆', gender: '男' }
]
*/

分页加载数据(使用总数量total进行控制)

上滑加载更多和点击下一步加载更多逻辑相同。

// data 
searchForm: {
    pageNumber: 1,
    pageSize: 8,
},
loading: false,
data:[],
total:0,

// methods
getDataList() {
    // 多条件搜索用户列表
    this.loading = true;
    // 避免后台默认值
    getIpList(this.searchForm).then(res => {
        this.loading = false;
        if (res.success) {
            let arr = res.result.records;
            //第一页赋值  其他页数 追加
            this.data = this.searchForm.pageNumber === 1 ? arr : this.data.concat(arr);
            this.total = res.result.total;
        }
    });
},

上滑加载更多数据(使用总页数pages进行控制),【点击查看全部代码】)

//
list: [], //列表
status: 'loadmore',
pageNumber: 1,
pageSize: 10,
pages: 0
// 
mounted() {
    this.init()
    let _this=this
    uni.$on('onReachBottom', function (data) {
        console.log('触底了!',_this.pageNumber);
        if (_this.pageNumber >= _this.pages) return
        _this.status = 'loading'
        _this.pageNumber = ++_this.pageNumber
        _this.getList()
        if (_this.pageNumber >= _this.pages) {
            _this.status = 'nomore'
        } else {
            _this.status = 'loading'
        }
    })
},
//
getList() {
    let param = {
        pageNumber: this.pageNumber,
        pageSize: this.pageSize
    }
    this.$api.exhibitor.listHot(param).then(res => {
        const {
            success,
            result
        } = res
        if (success) {
            if (result && result.records) {
                let arr = result.records
                //第一页赋值  其他页数 追加
                this.list = this.pageNumber === 1 ? arr : this.list.concat(arr);
                this.pages = result.pages
            }
        }
    })
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值