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


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 相关文章推荐
使Ext的Template可以解析二层的json数据的方法
Dec 22 Javascript
JavaScript 自动分号插入(JavaScript synat:auto semicolon insertion)
Nov 04 Javascript
javascript怎么禁用浏览器后退按钮
Mar 27 Javascript
js中自定义方法实现停留几秒sleep
Jul 11 Javascript
javascript检测浏览器的缩放状态实现代码
Sep 28 Javascript
AngularJS的内置过滤器详解
May 14 Javascript
浅谈javascript构造函数与实例化对象
Jun 22 Javascript
JavaScript基础篇(3)之Object、Function等引用类型
Nov 30 Javascript
AngularJS中的Promise详细介绍及实例代码
Dec 13 Javascript
javascript实现延时显示提示框效果
Jun 01 Javascript
vue实现移动端轻量日期组件不依赖第三方库的方法
Apr 28 Javascript
js中switch语句的学习笔记
Mar 25 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
用PHP制作静态网站的模板框架(四)
2006/10/09 PHP
PHP 金额数字转换成英文
2010/05/06 PHP
PHP处理二进制数据的实现方法
2016/06/13 PHP
php实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
jQuery判断checkbox是否选中的3种方法
2014/08/12 Javascript
node.js中的fs.lchmod方法使用说明
2014/12/16 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
2017/04/27 Javascript
关于jQuery库冲突的完美解决办法
2017/05/20 jQuery
vue 全选与反选的实现方法(无Bug 新手看过来)
2018/02/09 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
2018/09/16 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
2018/11/13 Javascript
浅谈vuex的基本用法和mapaction传值问题
2019/11/08 Javascript
JavaScript 常见的继承方式汇总
2020/09/17 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
2020/10/20 Javascript
vue自定义组件实现双向绑定
2021/01/13 Vue.js
用python实现的去除win下文本文件头部BOM的代码
2013/02/10 Python
Python的词法分析与语法分析
2013/05/18 Python
基于进程内通讯的python聊天室实现方法
2015/06/28 Python
Python list操作用法总结
2015/11/10 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
2016/12/12 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
2018/08/31 Python
Django实现网页分页功能
2019/10/31 Python
pycharm设置当前工作目录的操作(working directory)
2020/02/14 Python
Python 实现键盘鼠标按键模拟
2020/11/18 Python
Html5原创俄罗斯方块(基于canvas)
2019/01/07 HTML / CSS
Clarks鞋美国官网:全球领军鞋履品牌
2017/05/13 全球购物
英国最大的天然和有机产品在线零售商之一:Big Green Smile
2020/05/06 全球购物
简历的个人自我评价范文
2014/01/03 职场文书
法律系毕业生求职信
2014/05/28 职场文书
医德医风个人总结
2015/02/28 职场文书
基层党支部承诺书
2015/04/30 职场文书
2016情人节宣传语
2015/07/14 职场文书
MySQL 覆盖索引的优点
2021/05/19 MySQL