微信小程序 数据访问实例详解


Posted in Javascript onOctober 08, 2016

先简单说一下,小程序的结构

微信小程序 数据访问实例详解

如图所示

1、每个视图(.wxml)只需要添加对应名字的脚本(.js)和样式(.wxss)就可以了,不需要引用,page下面的脚本以及样式都是继承至最外面的app.js , app.wxcss

2、脚本也就是.js文件,他有固定格式:page,是用于获取数据的

3、utils是用来放置数据接口的

数据访问,如果懂点ajax,都不是问题,没啥好讲的

微信小程序,因为IDE太烂了,如果代码再写得难以阅读,整个项目就很难维护了。

因为没有写过app,不知道在app中数据访问是怎么封装的

作为一个有3天工作经验的小程序码农,觉得如果每个页面的数据都是自己去访问数据接口,那就太不OOP了

然后想到了linq to sql,只取了其中的两个方法,原本打算用singelordefault,firstordefault的,想想也麻烦,就用了getbyparams,getbyid,根据条件查找出所有数据,或者根据id获取一条数据

直接看方法吧,有点??铝?/p>

const API_URL = 'http://localhost:4424/api/'

function getApi(url,params){
 return new Promise((res,rej)=>{
  wx.request({
   url:API_URL+'/'+url,
   data:Object.assign({},params),
   header:{'Content-Type': 'application/json'},
   success:res,
   fail:rej
  })
 })
}

module.exports = {
 GetByParams(url,page=1,pageSize=20,search = ''){
  const params = { start: (page - 1) * pageSize, pageSize: pageSize }
  return getApi(url, search ? Object.assign(params, { q: search }) : params)
   .then(res => res.data)
 },
 GetById(url,id){
  return getApi(url, id)
   .then(res => res.data)
 }
}

module.exports = {}是固定写法,里面写一个一个的方法,每个方法用,隔开。

我设置了一个url参数,因为不可能把所有的接口都放在一个conntroller里面,所以url的格式是“conntroller/action”

看一个调用的栗子吧,就明白怎么用了

const req = require('../../utils/util.js')

Page({
 data: {
  imgUrls: [],
  indicatorDots: true,
  autoplay: true,
  interval: 2000,
  duration: 2000
 },
 onLoad(){
  req.GetByParams('home/homebanner')//看这里  看这里  看这里
  .then(d=>this.setData({imgUrls:d,loading:false}))
  .catch(e=>{
   this.setData({imgUrls:[],loading:false})
  })
 }
})

这是index的获取banner图的方法,req.GetByParams('home/homebanner'),这里也可以带参数,也可以空着

最终的页面是这样的

微信小程序 数据访问实例详解

在右边的红色框里面,我们可以看到请求返回的数据,也可以在右边修改数据,界面会跟随着变化,这是关于调试的事情了,容后再议

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
070823更新的一个[消息提示框]组件 兼容ie7
Aug 29 Javascript
ExtJs使用总结(非常详细)
Mar 22 Javascript
使用js获取地址栏中传递的值
Jul 02 Javascript
JavaScript中“过于”犀利地for/in循环使用示例
Oct 22 Javascript
引用 js在IE与FF之间的区别详细解析
Nov 20 Javascript
javascript中sort()的用法实例分析
Jan 30 Javascript
简化版手机端照片预览组件
Apr 13 Javascript
JQuery实现动态添加删除评论的方法
May 18 Javascript
Vue.js每天必学之数据双向绑定
Sep 05 Javascript
Node.js中环境变量process.env的一些事详解
Oct 26 Javascript
基于JS实现前端压缩上传图片的实例代码
May 14 Javascript
Vue数据绑定实例写法
Aug 06 Javascript
Bootstrap Table的使用总结
Oct 08 #Javascript
js HTML5手机刮刮乐代码
Sep 29 #Javascript
原生js的RSA和AES加密解密算法
Oct 08 #Javascript
ReactNative-JS 调用原生方法实例代码
Oct 08 #Javascript
微信小程序 实战小程序实例
Oct 08 #Javascript
node.js实现博客小爬虫的实例代码
Oct 08 #Javascript
阿里云ecs服务器中安装部署node.js的步骤
Oct 08 #Javascript
You might like
《PHP边学边教》(02.Apache+PHP环境配置――下篇)
2006/12/13 PHP
基于php上传图片重命名的6种解决方法的详细介绍
2013/04/28 PHP
php图片的二进制转换实现方法
2014/12/15 PHP
PHP封装的Twitter访问类实例
2015/07/18 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
解决php扩展安装不生效问题
2019/10/25 PHP
如何做到打开一个页面,过几分钟自动转到另一页面
2007/04/20 Javascript
一些mootools的学习资源
2010/02/07 Javascript
Jquery之美中不足小结
2011/02/16 Javascript
javascript设计简单的秒表计时器
2020/09/05 Javascript
javascript中eval和with用法实例总结
2015/11/30 Javascript
jQuery限制图片大小的方法
2016/05/25 Javascript
jQuery插件简单学习实例教程
2016/07/01 Javascript
JavaScript实现的select点菜功能示例
2017/01/16 Javascript
Vue-Access-Control 前端用户权限控制解决方案
2017/12/01 Javascript
详解nodejs通过响应回写的方式渲染页面资源
2018/04/07 NodeJs
微信小程序 Animation实现图片旋转动画示例
2018/08/22 Javascript
JavaScript中var的重要性实例分析
2019/07/09 Javascript
解决vue自定义全局消息框组件问题
2019/11/22 Javascript
在JavaScript中实现链式调用的实现
2019/12/24 Javascript
微信小程序返回上一级页面的实现代码
2020/06/19 Javascript
基于vue+echarts数据可视化大屏展示的实现
2020/12/25 Vue.js
python实现简单ftp客户端的方法
2015/06/28 Python
python字符串连接方法分析
2016/04/12 Python
python导出chrome书签到markdown文件的实例代码
2017/12/27 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
python使用adbapi实现MySQL数据库的异步存储
2019/03/19 Python
Python3.5基础之NumPy模块的使用图文与实例详解
2019/04/24 Python
Django Rest framework解析器和渲染器详解
2019/07/25 Python
Mysql数据库反向生成Django里面的models指令方式
2020/05/18 Python
Python3爬虫中Ajax的用法
2020/07/10 Python
新加坡网上化妆品店:Best Buy World
2018/05/18 全球购物
个人优缺点自我评价
2014/01/27 职场文书
副职竞争上岗演讲稿
2014/05/12 职场文书
趣味运动会口号
2015/12/24 职场文书
2016入党积极分子党课培训心得体会
2016/01/06 职场文书