




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章
主讲人:XX欢迎页面&文章列表页面升级本章目标完成文章数据数据从业务分离与模块化使用微信小程序模板完成文章列表显示理解微信小程序应用程序的生命周期使用缓存完成本地模拟服务器数据库用户登录授权模块化程序设计程序设计为什么模块化?(1)控制了程序设计的复杂性。(2)提高了代码的重用性。(3)易于维护和功能扩充。(4)有利于团队开发。模块化程序设计是指在进行程序设计时将一个大程序按照功能划分为若干小程序模块,每个小程序模块完成一个确定的功能,并在这些模块之间建立必要的联系,通过模块的互相协作完成整个功能的程序设计方法微信小程序中模块化可以将一些公共的代码抽离成为一个单独的js文件,作为一个模块,期使用步骤:1、通过module.exports或者exports才能对外暴露接口;2、通过在需要使用这些模块的文件中,使用require将公共代码引入步骤1:向外导出模块中文章列表数据和文章轮播数据步骤:2:使用模块化编程导入postList模块加载数据//使用模块化编程导入postList模块加载数据var
postData
=
require("../../data/data");
//绑定数据
this.setData({postList:postData.postList,bannerList:postData.bannerList
})//向外导出模块中文章列表数据和文章轮播数据module.exports={postList:postListData,bannerList:bannerListData}步骤:3:通过模块调用数据微信小程序模板的使用WXML提供模板(template),可以在模板中定义代码片段,然后在不同的地方调用。步骤1:创建模板文件步骤2:定义模板<!--文章模板--><template
name="postItemTpl">
<view
class="post-container">
<view
class="post-author-date">
<image
src="{{avatar}}"/>
<text>{{date}}</text>
</view>
<text
class="post-title">{{title}}</text>
<image
class="post-image"src="{{postImg}}"mode="aspectFill"/>
<text
class="post-content">{{content}}</text>
<view
class="post-like">
<image
src="/images/icon/wx_app_collect.png"/>
<text>{{collectionNum}}</text>
<image
src="/images/icon/wx_app_view.png"></image>
<text>{{readingNum}}</text>
<image
src="/images/icon/wx_app_message.png"></image>
<text>{{commentNum}}</text>
</view>
</view></template>步骤2:使用模板
<template
is="postItemTpl"data="{{...post}}"></template>微信小程序App生命周期-1onLaunch(Objectobject)监听小程序初始化,当小程序初始化完成,会触发执行。(全局只触发一次)onShow(Objectobject)监听小程序显示,当小程序启动,或从后台进入前台,会触发执行。onHide()监听小程序隐藏,当小程序从前台进入后台,会触发执行。onError(Stringerror)监听小城发生脚本错误,或者API调用失败,会触发执行,并带上错误信息。App({
/***当小程序初始化完成时,会触发onLaunch(全局只触发一次)*/
onLaunch:
function
()
{
console.log("App:onLaunch:当小程序初始化完成时");
},
/***当小程序启动,或从后台进入前台显示,会触发onShow*/
onShow:
function
(options)
{
console.log("App:onShow:当小程序启动,或从后台进入前台显示,会触发onShow");
},
/***当小程序从前台进入后台,会触发onHide*/
onHide:
function
()
{
console.log("App:onHide:当小程序从前台进入后台,会触发onHide");
},
/***当小程序发生脚本错误,或者api调用失败时,会触发onError并带上错误信息*/
onError:
function
(msg)
{
console.log("App:onError:当小程序发生脚本错误,或者api调用失败时,会触发onError并带上错误信息",msg);
}})微信小程序App生命周期-2应用程序生命周期函数回调控制台显示信息点击”Home”健回调控制台显示信息点击”发现栏小程序主入口”,控制台显示信息微信小程序中全局变量App({globalData:{globalMessage:
"Iamglobaldata",
}})通过全局函数getApp可以获取全局的应用实例,如果需要全局的数据可以在App()中设置
//获取应用级的全局变量
var
appInstance
=
getApp();
console.log(appInstance.globalData);微信小程序数据缓存wx.setStorageSync(stringkey,anydata)将数据存储在本地缓存中指定的key中。会覆盖掉原来该key对应的内容。除非用户主动删除或因存储空间原因被系统清理,否则数据都一直可用。单个key允许存储的最大数据长度为1MB,所有数据存储上限为10MB。wx.getStorageSync(stringkey)从本地缓存中同步获取指定key的内容。wx.removeStorageSync(stringkey)从本地缓存中移除指定key。wx.clearStorage(Objectobject)清理本地数据缓存。数据缓存API截图微信小程序数据缓存-示例/***当小程序初始化完成时,会触发onLaunch(全局只触发一次)*/
onLaunch:
function
()
{
console.log("App:onLaunch:当小程序初始化完成时");
var
storageData
=
wx.getStorageSync('postList');
if(!storageData){
var
dataObj
=
require("data/data.js");
//清除缓存
wx.clearStorageSync();
//保存本地数据
wx.setStorageSync('postList',
dataObj.postList);
}else{
//保存全局变量中
this.globalData.postList
=
storageData;
}
}本地数据存储,Storage面板显示信息用户登录与授权-APIwx.getUserProfile(Objectobject)获取用户信息。页面产生点击事件(例如button上bindtap的回调中)后才可调用,每次请求都会弹出授权窗口,用户同意后返回userInfo用户登录与授权-示例-1<view
class="container">
<!--用户信息-->
<view
class="userinfo">
<block
wx:if="{{!userInfo}}">
<button
bindtap="login">用户登录授权</button>
</block>
<block
wx:else>
<image
bindtap="bindViewTap"class="userinfo-avatar"src="{{userInfo.avatarUrl}}"mode="cover"></image>
<text
class="motto">你好!{{userInfo.nickName}}</text>
<button
bindtap="loginOut">退出登录</button>
<view
catchtap="goToPostPage"class="journey-container">
<text
class="journey">开启小程序之旅</text>
</view>
</block>
</view></view>用户登录授权的显示逻辑代码//用户登录授权
login()
{
console.log('用户点击登录授权');
wx.getUserProfile({desc:
'用于完善会员资料',
success:
res
=>
{
let
userInfo
=
res.userInfo;
//登录授权成功,保存用户信息到缓存
wx.setStorageSync('userInfo',
userInfo)
this.setData({userInfo:
userInfo
});
}
})
},
//用户退出登录
loginOut()
{
this.setData({userInfo:
''
});
//清除缓存中用户信息
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 提升冬季混凝土施工质量的技术措施
- 冬季施工中的混凝土抗压强度提升方案
- 城市生活垃圾处理中心渗滤液处理系统更新改造工程节能评估报告
- 个人国内旅游合同范本
- 交通设施代销合同协议
- 旧楼加装电梯技术方案
- 蓄水池溢水保护方案
- 路段标志标线安装方案
- 临时水电安装合同范本
- 主动解除劳务合同协议
- 项目经理年中会议汇报
- 小学生美容知识培训内容课件
- 宅基地入股合作协议合同范本
- T/CCAS 022-2022水泥工业大气污染物超低排放标准
- 客户回访方案
- 贵州省公路路产损害赔(补)偿收费项目及标准
- 小班绘本《我的门》课件
- 临床技术操作规范麻醉学分册
- 劳动关系理论PPT课件.ppt
- 《建筑工程资料管理规程》DB34T918-2019
- 《烹饪概论》教案(共33页)
评论
0/150
提交评论