1. 简单描述下微信小程序的相关文件类型
微信小程序有四个文件类型
wxml 负责小程序的页面布局
wxss 负责小程序的页面样式
js 负责小程序的逻辑处理
json 负责小程序的配置
2. 小程序的wxss和css有哪些不一样的地方?
WXSS 和 CSS 类似,不过在 CSS 的基础上做了一些补充和修改
新增尺寸单位rpx
可以使用@import来导入外链样式
3. 小程序页面间有哪些传递数据的方法
路由传递:使用 wx.navigateTo 与 wx.redirectTo 传递
全局变量:使用 globalData 来传递
本地存储:使用 Storage 来存储数据
4. 小程序的生命周期函数
小程序生命周期:
onLaunch 小程序初始化
onShow 小程序显示或者切换前台时触发
onHide 小程序切换后台触发
页面生命周期:
onLoad 当前页面加载完成后触发
onShow 当前页面显示或者切换前台时触发
onHide 当前页面切换后台触发
onReady 当前页面第一次渲染完毕后触发
onUnload 当前页面被卸载时触发
组件生命周期:
created 在组件实例刚刚被创建时执行
attached 在组件实例进入页面节点树时执行
ready 在组件在视图层布局完成后执行
moved 在组件实例被移动到节点树另一个位置时执行
detached 在组件实例被从页面节点树移除时执行
5. 请说一下小程序的授权登录
第一步:登录流程
wx.login —> wx.request —> 后端 —> 小程序(腾讯)服务器
第二步:
登录 —> 检测是否注册 —> 没有注册先获取用户信息进行注册(写入公司数据库)—> 进行登录
将登录弹框封装成一个模板,进行引用
6. 小程序如何实现下拉刷新
* 首先在全局 config 中的 window 配置 enablePullDownRefresh
* 在 Page 中定义 onPullDownRefresh 钩子函数,到达下拉刷新条件后,该钩子函数执行,发起请求方法
* 请求返回后,调用 wx.stopPullDownRefresh 停止下拉刷新
7. bindtap和catchtap的区别是什么?
相同点:首先他们都是作为点击事件函数,就是点击时触发。在这个作用上他们是一样的,可以不做区-分
不同点:他们的不同点主要是bindtap是不会阻止冒泡事件的,catchtap是阻值冒泡的
8. 小程序的路由跳转有几种方式
wx.navigateTo()
wx.redirectTo()
wx.switchTab()
wx.navigateBack()
wx.reLaunch()
9. 简述下 wx.navigateTo() , wx.redirectTo() , wx.switchTab() , wx.reLaunch() 的区别
* wx.navigateTo():保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面,允许携带参数
* wx.redirectTo():关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面,不能携带参数
* wx.switchTab():跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面 允许携带参数
* wx.reLaunch():关闭所有页面,打开到应用内的某个页面 允许携带参数
10. 说一下小程序组件中如何进行通信
父组件传递给子组件:
在父组件的子组件标签上自定义一个属性,该属性保存的值就是要传递的数据
在子组件的js文件中的properties中接收该自定义属性
在子组件的wxml中就可以使用
子组件传递给父组件:
在子组件中触发一个事件函数
在该事件函数中使用this.$triggerEvent()向父组件发出一个自定义事件
在父组件的子组件标签上使用bind来绑定对应的事件名,
在触发事件的函数中使用e.detail 可以拿到对应的值
11. 说一下微信小程序支付功能如何实现
1. 登录微信公众平台, 开通微信支付功能
2. 登录微信商户平台
3. 小程序调用wx.login() 获取code,传递给商户服务器用来获取用户的openID及token
4. 调用统一下单接口,获取prepay_id,再次签名(后端完成,不详解)
5. wx.requestPayment() 获取五个参数后,调起支付
12. 说一下在小程序中如何使用npm?
需要先使用 npm init 进行初始化
然后可以通过 npm 下载自己想要的插件
在小程序开发者工具中的菜单栏中选择 --- 工具 --- 构建npm
构建完毕之后会生成一个小程序的npm包
之后就可以使用对应的插件
13. 小程序的发布流程
上传代码
将服务器域名加入到白名单中
提交审核
提交审核时需要填写真实的小程序相关信息
发布版本