微信小程序云开发实现数据添加、查询和分页


Posted in Javascript onMay 17, 2019

本文实例为大家分享了微信小程序云开发实现数据添加、查询和分页,供大家参考,具体内容如下

实现的效果

微信小程序云开发实现数据添加、查询和分页

实现要点

WXML 不同类别数据的显示

通过 if-elif-else 实现,在wxml文件中通过 <block></block>渲染,因为它仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性。也就是说可以通过属性来控制页面是否要渲染这部分的内容,可以减少页面渲染时间。
云开发数据的获取

先开通云开发功能 ,参考官方文档,然后在创建项目的时候勾选上 使用云开发模板(看个人吧,我直接使用后点击项目中的 login)就可以获取到用户的oppenid,之后就可以使用云数据库了。

云开发登录:

微信小程序云开发实现数据添加、查询和分页

云数据的获取

微信小程序云开发实现数据添加、查询和分页

/**
 * 生命周期函数--监听页面加载
 */
 onLoad: function(options) {
 console.log('onload');
 this.getData(this.data.page); 
 },
 /**
 * 获取列表数据
 * 
 */
 getData: function(page) {
 var that = this;
 console.log("page--->" + page);
 const db = wx.cloud.database();
 // 获取总数
 db.collection('topic').count({
  success: function(res) {
  that.data.totalCount = res.total;
  }
 })
 // 获取前十条
 try {
  db.collection('topic')
  .where({
   _openid: 'oSly***********vU1KwZE', // 填入当前用户 openid
  })
  .limit(that.data.pageSize) // 限制返回数量为 10 条
  .orderBy('date', 'desc')
  .get({
   success: function(res) {
   // res.data 是包含以上定义的两条记录的数组
   // console.log(res.data)
   that.data.topics = res.data;
   that.setData({
    topics: that.data.topics,
   })
   wx.hideNavigationBarLoading();//隐藏加载
   wx.stopPullDownRefresh();
   
   },
   fail: function(event) {
   wx.hideNavigationBarLoading();//隐藏加载
   wx.stopPullDownRefresh();
   }
  })
 } catch (e) {
  wx.hideNavigationBarLoading();//隐藏加载
  wx.stopPullDownRefresh();
  console.error(e);
 }
 },

云数据的添加

/**
 * 保存到发布集合中
 */
 saveDataToServer: function(event) {
 var that = this;
 const db = wx.cloud.database();
 const topic = db.collection('topic')
 db.collection('topic').add({
  // data 字段表示需新增的 JSON 数据
  data: {
  content: that.data.content,
  date: new Date(),
  images: that.data.images,
  user: that.data.user,
  isLike: that.data.isLike,
  },
  success: function(res) {
  // res 是一个对象,其中有 _id 字段标记刚创建的记录的 id
  // 清空,然后重定向到首页
  console.log("success---->" + res)
  // 保存到发布历史
  that.saveToHistoryServer();
  // 清空数据
  that.data.content = "";
  that.data.images = [];

  that.setData({
   textContent: '',
   images: [],
  })

  that.showTipAndSwitchTab();

  },
  complete: function(res) {
  console.log("complete---->" + res)
  }
 })
 },

云数据的删除

可查看官放文档,这里不贴代码了,有问题联系。

云数据的更新

可查看官放文档,这里不贴代码了,有问题联系。

数据列表的分页

主要就是定义一个临时数组存放加载上来的数据,然后通过传递给对象,最后传递到布局中去。 

/**
 * 页面上拉触底事件的处理函数
 */
 onReachBottom: function() {
 var that = this;
 var temp = [];
 // 获取后面十条
 if(this.data.topics.length < this.data.totalCount){
 try {
 const db = wx.cloud.database();
 db.collection('topic')
  .skip(5)
  .limit(that.data.pageSize) // 限制返回数量为 5 条
  .orderBy('date', 'desc') // 排序
  .get({
  success: function (res) {
  // res.data 是包含以上定义的两条记录的数组
  if (res.data.length > 0) {
  for(var i=0; i < res.data.length; i++){
   var tempTopic = res.data[i];
   console.log(tempTopic);
   temp.push(tempTopic);
  }

  var totalTopic = {};
  totalTopic = that.data.topics.concat(temp);

  console.log(totalTopic);
  that.setData({
   topics: totalTopic,
  })
  } else {
  wx.showToast({
   title: '没有更多数据了',
  })
  }


  },
  fail: function (event) {
  console.log("======" + event);
  }
  })
 } catch (e) {
 console.error(e);
 }
 }else{
 wx.showToast({
 title: '没有更多数据了',
 })
 }
 
 },

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript miscellanea -display data real time, using window.status
Jan 09 Javascript
javascript smipleChart 简单图标类
Jan 12 Javascript
Javascript 页面模板化很多人没有使用过的方法
Jun 05 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
Dec 04 Javascript
js变量提升深入理解
Sep 16 Javascript
浅谈 Vue 项目优化的方法
Dec 16 Javascript
vue实现pdf导出解决生成canvas模糊等问题(推荐)
Oct 18 Javascript
Vue-cli3.x + axios 跨域方案踩坑指北
Jul 04 Javascript
javascript设计模式 ? 迭代器模式原理与用法实例分析
Apr 17 Javascript
手把手教你实现 Promise的使用方法
Sep 02 Javascript
vue 使用rules对表单字段进行校验的步骤
Dec 25 Vue.js
使用AutoJs实现微信抢红包的代码
Dec 31 Javascript
js常用正则表达式集锦
May 17 #Javascript
Angular请求防抖处理第一次请求失效问题
May 17 #Javascript
vue cli 3.0 搭建项目的图文教程
May 17 #Javascript
小程序云开发如何实现图片上传及发表文字
May 17 #Javascript
tsconfig.json配置详解
May 17 #Javascript
小程序云函数调用API接口的方法
May 17 #Javascript
JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地示例
May 17 #Javascript
You might like
一个用mysql_odbc和php写的serach数据库程序
2006/10/09 PHP
PHP处理CSV表格文件的常用操作方法总结
2016/07/01 PHP
PHP实现git部署的方法教程
2017/12/19 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
js 异步处理进度条
2010/04/01 Javascript
ExtJs 表单提交登陆实现代码
2010/08/19 Javascript
在JavaScript中处理字符串之fontcolor()方法的使用
2015/06/08 Javascript
js精美的幻灯片画集特效代码分享
2015/08/29 Javascript
JavaScript函数柯里化详解
2016/04/29 Javascript
JavaScript中的编码和解码函数
2017/02/15 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
2017/04/10 Javascript
jquery仿微信聊天界面
2017/05/06 jQuery
Vue仿支付宝支付功能
2018/05/25 Javascript
Three.js中矩阵和向量的使用教程
2019/03/19 Javascript
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
[00:59]DOTA2荣耀之路1:Doom is back!weapon X!
2018/05/22 DOTA
[52:06]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python 自动安装 Rising 杀毒软件
2009/04/24 Python
详解Django之auth模块(用户认证)
2018/04/17 Python
python中将zip压缩包转为gz.tar的方法
2018/10/18 Python
Python hexstring-list-str之间的转换方法
2019/06/12 Python
检测python爬虫时是否代理ip伪装成功的方法
2019/07/12 Python
利用Python库Scapy解析pcap文件的方法
2019/07/23 Python
浅析移动设备HTML5页面布局
2015/12/01 HTML / CSS
英国复古服装和球衣购买网站:3Retro Football
2018/07/09 全球购物
ECCO俄罗斯官网:北欧丹麦鞋履及皮具品牌
2020/06/26 全球购物
高中三年学习生活的自我评价
2013/10/10 职场文书
公司庆典活动邀请函
2014/01/09 职场文书
大二学习计划书范文
2014/04/27 职场文书
口才训练演讲稿范文
2014/09/16 职场文书
上班时间打瞌睡检讨书
2014/09/26 职场文书
2015年入党决心书
2015/02/05 职场文书
2015年保洁工作总结范文
2015/04/28 职场文书
关于观后感的作文
2015/06/18 职场文书
新郎父母婚礼致辞
2015/07/27 职场文书