小程序复习用
一,如何创建一个微信小程序项目?
用邮箱申请账号,成功之后,在微信公众平台生成AppID,
文档位置:指南 -> 起步
二,小程序代码的构成?
json wxml wxs wxss
文档位置:指南 -> 小程序代码构成
三,小程序配置有哪些?如何配置微信小程序?
全局配置,页面配置,
全局配置里重点,pages,window,tabBar,permission,navigateToMiniProgramAppIdList
页面配置重点:navigationBarBackgroundColor,navigationBarTextStyle,navigationBarTitleText
enablePullDownRefresh,onReachBottomDistance,
页面中配置项在当前页面会覆盖 app.json 的 window 中相同的配置项。
文档位置:指南 -> 配置小程序,框架 -> 小程序配置
四,小程序页面生命周期是什么?
(能说出小程序生命周期所有的函数名称,并说明他们之间的区别)
onLoad 在页面开始时,只加载一次
onShow 除了在第一次显示时 调用时,执行之外,在页面跳转回来时 也会执行
onReady 是在dom全部加载完成之后 执行,
onHide 是在跳转到别的页面时,调用,
onUnLoad 是在页面关闭 卸载后 调用。
文档位置: 框架 -> 框架接口 -> 页面 -> Page
小程序生命周期
onLaunch() {
console.log(\’onLaunch监听小程序初始化\’);
}
onShow() {
console.log(\’onShow监听小程序显示\’);
}
onHide() {
console.log(\’onHide监听小程序隐藏\’);
}
五,页面其他的事件监听函数还有哪些?
onPullDownRefresh 监听用户下拉动作
onReachBottom 页面上拉触底事件的处理函数
onShareAppMessage 买 塞 之 用户点击右上角转发
onPageScroll 页面滚动触发事件的处理函数
onResize 页面尺寸改变时触发,详见 响应显示区域变化
onTabItemTap 当前是 tab 页时,点击 tab 时触发
文档位置: 框架 -> 框架接口 -> 页面 -> Page
六,模块化
两种方式,一种是es6的 import 一种是 require
require 方式,通过 module.exports 导出,通过require 引入
import 方式,通过 export.default 导出,通过import 引入
require 参考文档,框架 -> 框架接口 -> 模块化
import 参考文档,es6.ruanyifeng.com 或者 https://www.runoob.com/w3cnote/es6-module.html
七,事件系统
事件分为 捕获 事件触发 冒泡 ,
冒泡事件和非冒泡事件:冒泡事件 用bind开头,非冒泡事件用catch开头
捕获阶段监听事件时,用capture-bind、capture-catch开头,capture-catch将中断捕获阶段和取消冒泡阶段。
文档位置: 框架 -> 小程序框架 -> 视图层 -> 事件系统
八,复习语法
数据绑定,列表渲染,条件渲染,模板,引入
文档位置: 框架 -> WXML语法参考
九,常用组件:
9.1 视图容器
view,scroll-view,swiper,swiper-item,
重点需要了解 scroll-view,swiper 都有哪些属性 ,怎么使用
文档位置: 组件 -> 视图容器
9.2
图标组件和文本组件
icon text
文档位置: 组件 -> 基础内容
9.3
表单组件
表单组件都有哪些?
参考文档位置: 组件 -> 表单组件 picker
重点 button,picker,input,
button的open-type都有哪些?分别是做什么用的?
picker 里mode 的合法值都有哪些?
input 常用的属性以及事件监听方法 有哪些?
参考文档位置: 组件 -> 表单组件
9.4
媒体组件
重点 audio,video,image
其中,image的缩放模式(mode)都有哪些? image还有哪些可用的属性?
参考文档位置: 组件 -> 媒体组件 -> image
十,小程序跳转页面,也就是路由API 都有哪些?他们的区别是什么?
wx.switchTab 思维持忒博,wx.reLaunch 瑞揽驰,wx.redirectTo 瑞迪艾特吐,wx.navigateTo ,wx.navigateBack
wx.switchTab 跳转到tabBar页面
wx.reLaunch 关闭所有打开的页面,然后跳转到某一个页面
wx.redirectTo 关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面。
wx.navigateTo 不关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面。
wx.navigateBack 返回上一个页面 或 多级页面
参考文档位置: API -> 路由
十一,小程序弹窗的方式 都有哪些?
wx.showToast 售透斯特 wx.showLoading wx.showModal wx.showActionSheet 艾克神谁特
其中,wx.showToast wx.showLoading 需要用 wx.hideToast,wx.hideLoading 来关闭
wx.showModal wx.showActionSheet 需要用户选择后自动关闭
wx.showModal 和 wx.showActionSheet,都需要传什么参数,如何使用?
参考文档位置: API -> 界面 -> 交互
十二,如何设置导航栏动画?
wx.showNavigationBarLoading wx.hideNavigationBarLoading
参考文档位置: API -> 界面 -> 导航栏
十三,如何动态设置导航栏标题文字 和 导航条颜色?
wx.setNavigationBarTitle wx.setNavigationBarColor
参考文档位置: API -> 界面 -> 导航栏
十四,如何显示和隐藏tabBar
wx.showTabBar wx.hideTabBar
参考文档位置: API -> 界面 -> Tab Bar
十五,如何触发下拉刷新?
wx.startPullDownRefresh wx.stopPullDownRefresh
参考文档位置: API -> 界面 -> 下拉刷新
十六,如何监听下拉刷新事件?
需要在app.json的window选项中或页面配置中开启enablePullDownRefresh
onPullDownRefresh()
文档位置: 框架 -> 框架接口 -> 页面 -> Page
十七,如何监听上拉刷新事件?
需要在app.json的window选项中或页面配置中设置触发距离 onReachBottomDistance
onReachBottom()
文档位置: 框架 -> 框架接口 -> 页面 -> Page
十八,如何监听用户滑动页面事件?
onPageScroll() 用scrollTop获取滚动的距离
文档位置: 框架 -> 框架接口 -> 页面 -> Page
十九,如何实现转发?如何监听转发事件?
1,点击右上角三个点,选择转发选项,
2,通过<button open-type=”share”></button>
页面上通过 onShareAppMessage 监听,
可以用过事件里的 from 属性,判断转发事件来源。
button:页面内转发按钮;
menu:右上角转发菜单
文档位置: 框架 -> 框架接口 -> 页面 -> Page
二十,如何将页面滚动到目标位置?
wx.pageScrollTo()方法
文档位置: API -> 界面 -> 滚动
二十一,如何发送一个请求?
wx.request 方法 ,具体参数参考文档
文档位置: API -> 网络 -> 发送请求
二十二,数据缓存的方法有哪些?
异步方法 wx.setStorage wx.getStorage wx.removeStorage wx.clearStorage
同步方法在 异步方法名称后加Sync
文档位置: API -> 网络 -> 数据缓存
二十三,如何选择图片,如何预览图片?
wx.previewImage 预览图片,wx.chooseImage 选择图片
文档位置: API -> 媒体 -> 图片
二十四,如何播放一个背景音乐?
首先通过 wx.getBackgroundAudioManager 方法获取全局唯一音频管理器,
然后通过设置音频地址(src属性)等,播放音频
常用的属性有 src 音频地址,title 标题,epname 专辑名称,singer歌手名称,coverImgUrl封面图片地址,等
文档位置: API -> 媒体 -> 背景音频
二十五,如何获取一个节点信息?
小程序不能通过js修改dom节点,但是可以获取节点信息
通过wx.createSelectorQuery()方法 获取 SelectorQuery 对象实例
然后依次调用select方法 boundingClientRect方法,exec方法 获取信息
具体使用方式,参考文档,示例
文档位置: API -> WXML -> wx.createSelectorQuery
二十六,小程序还能使用什么硬件能力?
蓝牙,NFC,Wi-Fi,摄像头,
文档位置: 指南 -> 硬件能力
需要了解的内容:
一,登录
小程序登录流程:
微信小程序调用wx.login获取临时登录凭证code,并传给后端,后端调用微信服务接口换取户唯一标识 OpenID 和 会话密钥 session_key,openid存入数据库后,后端返回给我一个token值,我用token值进行用户验证
常见登录开发步骤:
1,调用 wx.checkSession()方法 检查session_key 是否过期,过期了需要重新登录,则执行第二步
2,微信小程序调用wx.login获取临时登录凭证code,并传给后端,后端调用微信服务接口换取户唯一标识 OpenID 和 会话密钥 session_key
3,保存OpenID,(如果已经有相同的openid就做更新操作,没有就新保存),
4,用openid 、时间戳、自定义字符 做md5操作,生成一个token,把这个token 存入 类似redis等kv数据库,并把token返回给小程序
5,小程序通过token来做验证等操作,登录流程完毕。
二,自定义组件
1,自定义组件类似于页面,一个自定义组件由 json wxml wxss js 4个文件组成,但不需要在app.json里注册
2,页面使用自定义组件时,首先在当前页面配置 usingComponents,写出组件名称 和 对应的路径
3,自定义组件 有自己的生命周期
文档位置: 指南 -> 自定义组件
小程序与普通网页开发的区别:
1.浏览器不同
2.渲染机制不同