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. 小程序的发布流程

    上传代码

      将服务器域名加入到白名单中

    提交审核

      提交审核时需要填写真实的小程序相关信息

    发布版本