千家信息网

微信小程序开发实例分析

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要介绍"微信小程序开发实例分析",在日常操作中,相信很多人在微信小程序开发实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"微信小程序开发实例分析"的疑惑
千家信息网最后更新 2025年01月20日微信小程序开发实例分析

这篇文章主要介绍"微信小程序开发实例分析",在日常操作中,相信很多人在微信小程序开发实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"微信小程序开发实例分析"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

新建小程序项目

一、新建项目选择小程序项目,选择代码存放的硬盘路径,填入你的小程序 AppID,给你的项目起一个好听的名字,最后,点击确定,你就得到了你的小程序了开发者工具传送门

目录结构

page
index
index.js
index.wxml
index.wxss

logs
logs.js
logs.json
logs.wxml
logs.wxss

utils
util.js

app.js
app.json
app.wxss
project.config.json

下载和安装BmobSDK

一、把bmob-min.js和underscore.js放到相应的文件,例如放到utils中

二、接着是在app.js中加入下面两行代码进行全局初始化

const Bmob = require(\'utils/bmob.js\');

Bmob.initialize(你的Application ID, 你的REST API Key);

一、创建一个名字为detail的表,然后点击添加列创建3个字段,一个一个的添加

title字段,String 类型,用于存放文章的标题 image字段,String 类型,用于存放文章的图片 detail字段 String类型,用于存放文章的正文 然后添加一些数据进行测试

列表页面实现

一、去到index.js中 Ctrl + A然后按Delete清空这个页面,然后自己来写逻辑吧,首先我们需要引入bmob.js 然后在onLoad小程序生命周期中去请求detail表中的数据,让bmob和小程序完成第一次交互

//index.js
//获取应用实例
const Bmob = require(\'../../utils/bmob.js\'); //每个需要使用到bmob的页面都需要引入这个js

Page({
onLoad() {
let Diary = Bmob.Object.extend(detail); //引入detail这张表
let query = new Bmob.Query(Diary);
query.find({
success: (results) => {
console.log(results)//打印数据
},
error(error) {
console.log(`查询失败: ${error.code } ${error.message}`);
}
});
},
})

这里完成了一次对bmob的数据查询,bmob文档传送门, 这个查询默认返回10条记录。当数据多了之后,一次查询很多数据,这样是不友好的,并不是说bmob查询数据慢,而是指如果将来你的用户在网速比较慢的情况使用你的小程序,请求数据等待时间过长,这个等待的过程也许会导致用户不再使用你的小程序。所以我们需要优化用户体验。那么将代码改造成一上拉加载更多。

//index.js
//获取应用实例
const app = getApp();
const Bmob = require(\'../../utils/bmob.js\'); //每个需要使用到bmob的页面都需要引入这个js

Page({
data: {
detail:[], //页面数据
pagination:0, //页码
pageSize: 4, //每页数据
nodata:true //无数据
},
onLoad() {
//初始页面第一次获取页面数据
this.getData();
},
getData(){
let Diary = Bmob.Object.extend(detail); //引入detail这张表
let query = new Bmob.Query(Diary);
query.limit(this.data.pageSize); //返回n条数据
query.skip(this.data.pageSize * this.data.pagination); //分页查询
query.descending(\'createdAt\'); //已created列倒序
query.find({
success: (results) => {
let data = [];
//将得到的数据存入数组
for (let object of results) {
data.push({
id: object.id,
title: object.get(\'title\'),
image: object.get(\'image\'),
detail: object.get(\'detail\'),
createdAt: app.timeago(object.createdAt) //调用timeagoJs把日期转成N天前格式
})
}
//判断是否有数据返回
if(data.length){
let detail = this.data.detail; //得到页面上已经存在的数据(数组)
let pagination = this.data.pagination; //获取当前分页(第几页)
detail.push.apply(detail, data); //将页面上面的数组和最新获取到的数组进行合并
pagination = pagination ? pagination+1 : 1; //此处用于判断是首次渲染数据还是下拉加载渲染数据

//更新数据
this.setData({
detail: detail,
pagination: pagination
})
}else{
//没有返回数据,页面不再加载数据
this.setData({
nodata: false
})
}
},
error(error) {
console.log(`查询失败: ${error.code } ${error.message}`);
}
});
},
router(e) {
//跳转至文章详情页
const id = e.currentTarget.dataset.id
wx.navigateTo({
url: `../detail/detail?id=${id}`
})
},
onReachBottom(){
//下拉触底加载更多数据
this.getData();
}
})

上述代码中在日期处使用了timeagoJs下载地址,下载timeagoJs放到util文件夹中,然后在app.js中引入。

//app.js

const Bmob = require(\'./utils/bmob.js\')

const timeago = require(./utils/timeago.min.js);

Bmob.initialize(你的Application ID, 你的REST API Key);

App({
timeago(date){
return new timeago().format(date, \'zh_CN\')
}
})

二、完成了列表页逻辑层之后,去到index.wxml编写视图层,视图层就简单许多了,得到的数据是一个数组,数组里面是一个json,用wx:for方法把它渲染出来就好了

三、来对页面进行一些美化,编写一样样式吧。毕竟这是一个看脸的社会

/**index.wxss**/
.container{ padding: 30rpx;}
.pane{ width: 100%; margin-bottom:30rpx; border-radius: 5rpx; overflow: hidden; box-shadow: 0 0 10rpx rgba(0, 0, 0, .1) }
.pane image{ width: 100%; height: 240rpx; display: block;}
.pane .content{ background-color: #FFF; padding: 20rpx;}
.pane .title{ display: block; font-size: 30rpx; font-weight: bold; margin-bottom: 20rpx;}
.pane .date{ display: block; font-size: 24rpx; color: #999}
.nodata{ text-align: center; font-size: 24rpx; color: #999}

以上列表页面算是完成了。此时点击页面的时候,应该会报错,提示detail页面未配置,那来到app.json里面配置一下detail这个页面。

到此,关于"微信小程序开发实例分析"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

数据 页面 程序 查询 实例 数组 开发 文章 实例分析 程序开发 分析 代码 字段 更多 项目 学习 用户 类型 名字 文件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 通信和网络技术创新研究 如何判断小程序有数据库 梁溪区计算机网络技术哪里买 重庆计算机网络技术专科院校 专科软件开发能胜任什么工作 注意网络安全的画 大专生如何学习软件开发 oracle更改数据库用户密码 南航网络安全教育 阿里云轻量服务器怎么用手机连接 tbc木喉要塞服务器人口 网络安全日实施日期 行唐节能软件开发服务咨询报价 35岁软件开发 女 国家网络安全周是哪天 数据库连接主机不能定位 网络安全药丸不是糖豆豆教案 hp服务器硬盘灯不亮 陕西工程软件开发排行 上海九岸网络技术官网 灾害风险数据库影响 pld软件开发 阿里云服务器怎么购买划算 大学生网络安全知识竞赛总结 从事网络安全技术工作有前途吗 薇洋互联网科技有限公司 中经网产业数据库 账号 软件开发 预算表 银行的软件开发需要拉存款吗 软件开发项目如何谈判
0