data —— kw:""、list:[ ]、pno:0、pageCount:99999、isLoading:false
loadNextPageData(){
//1 如果没有更多数据了,或者当前正在加载中,则退出
//2 设置“加载中”为真
//3 异步请求服务器端数据
//4 设置“加载中”为假
}
情形1:页面挂载时,调用“加载下一页数据”
情形2:滚动到页面底部时,调用“加载下一页数据”
情形3:顶部下拉刷新时,清除已有数据,调用“加载下一页数据”
HTTP协议是“Stateless(无状态的)”,每个请求都会获得一个响应消息,响应结束后,服务器不会记录任何客户端的过往访问信息。
但是,实际项目中,用户登录之后,服务器需要一直显示当前用户的信息 —— 实现技术有四种:
使用token实现“登录后获取个人信息”
| 客户端 | 服务器 | |
|---|---|---|
| 第一步:登录 | 发送简单请求 | 把客户端信息保存在一个对象中,加密为token字符串;返回响应消息{code:200, msg: 'login succ',token: '加密后的字符串'} |
| 接收到响应消息,把其中的token保存在客户端uni.setStorageSync(‘ServerToken’, token) | ||
| 第二步:获取个人档案 | 从客户端读取之前保存的token let token=uni.getStorageSync('ServerToken') | |
| 发送请求消息,把token放在请求消息头中(与后端协商好的请求头)GET /user/get_basic.php HTTP1.1authorization: ‘‘加密后的字符串’’ | 接收到请求消息,从请求头中读取authorization(即token),解密令牌从中读取客户端信息(如用户编号),查询数据库,返回响应消息 |
uni.setStorage() 在客户端存储键值对数据(异步的)
uni.setStrorageSysnc() 在客户端存储键值对数据(同步的)
uni.getStorage() 读取保存在客户端的键值对数据(异步的)
uni.getStrorageSysnc() 读取保存在客户端的键值对数据(同步的)
项目的两种运行模式:
①调试模式/开发模式/运行模式(Development Mode) —— npm start
代码没有经过压缩和优化,所以代码体积比较大 —— 会自动连接开发服务器,自动更新
②生产模式/部署模式/发行模式(Production Mode) —— npm run build:
代码经过优化和压缩,所以代码体积比较小 —— 不能再自动连接开发服务器
演示1:把uni-app发布为“生产模式”的H5网站
点击当前项目,点击工具栏 “发行”>“网站-PCWeb或手机H5”;
成功后,编译后的结果保存在 @/unpackage/dist/build/h5 目录下,该目录下的内容复制到任意真实的云服务器上的WEB服务器上即可。
演示2:把uni-app发布为“生产模式”的微信小程序
点击当前项目,点击工具栏 “发行”>“小程序-微信”;
输入小程序名称 和 腾讯提供的小程序AppID,点击发布即可。
由于腾讯的限制,小程序访问的第三方域名(例如:http://www.codeboy.com)必须在“小程序控制台>request合法域名”列表中声明一下,否则小程序是禁止访问第三方域名的。
演示3:把uni-app发布为“生产模式”的App
编辑项目清单文件manifest.json,修改应用名称 和 图标 和 App权限配置(勾选);如果想安装到夜神模拟器,还需要勾选 “App常用其它设置>x86”
点击当前项目,点击工具栏 “发行”>“原生App-云打包”>修改“使用测试证书”>选择 “安心打包”>点击 “开始打包”;项目开始自动编译,完成后自动提交到DCloud服务器进行打包;等待一段时间…
打包成功后,会提示“APK文件创建成功,保存在@/unpackage/dist/build/apk”目录下;
可以重命名.apk文件,发布到应用商店 或者 放到自己的网站上供人下载 或者 直接把安装文件拷贝(用数据线或QQ)到自己的手机中,开始安装&启动App…