小程序常见面试题

1.小程序生命周期及页面生命周期

小程序的生命周期函数式在 App.js 里面调用的: 

  • onLaunch :监听小程序初始化(全局只触发一次)
  • onShow:   监听小程序显示
  • onHide:     监听小程序隐藏 
  • onError:     错误监听函数
  • onPageNotFound: 页面不存在监听函数   

各页面生命周期函数

  • onLoad:页面加载,调一次
  • onShow:页面显示,每次打开页面都调用
  • onReady:初次渲染完成,调一次
  • onHide:页面隐藏,当navigateTo或底部tab切换时调用
  • onUnload:页面卸载,当redirectTo或navigateBack时调用

2.小程序如何传参

  • 给HTML元素中添加  ‘ data- ’属性来传递需要的值,之后通过e.currantTarget.dataset 或  onload的params参数获取。 注意:不能有大写字母,不可以存放对象
  • 跳转页面时通过navigator传递需要的参数值
  • 设置id的方法标识,通过e.currentTarget.id 获取设置的id值,然后通过设置全局变量的方法来传递数值


3.路由是怎么样的

同第六题类似:

  • wx.navigater To:打开新页面
  • wx.redirectTo:页面重定向
  • wx.navigateBack:页面返回
  • wx.switchTab:tab切换
  • wx.reLaunch:重启


4.微信小程序的主要文件

  • WXML:模板文件
  • JSON:配置/设置文件,如标题,tarbbar,页面注册
  • WXSS:样式文件,样式可直接用import导入
  • JS: 脚本逻辑文件,逻辑处理,网络请求
  • app.json:配置文件入口,整个小程序的全局配置,网络超时时间,底部tab,页面路径,window字段是小程序所有页面的顶部背景颜色,文字颜色
  • app.js:可以没有内容,可以在里面监听生命周期函数,声明全局变量
  • app.wxss:全局配置样式文件

 

5.小程序与vue双向绑定的区别

小程序直接this.data的属性是不可以同步到试图的,必须调用this.setData({})

6.小程序页面跳转

  • wx.navigateTo:保留当前页面,跳转到应用内的某个页面。但是不能跳到tabber页面(参数必须为字符串)
  • wx.redirectTo:  关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到tabber页面
  • wx.switchTab:  跳转到tabber页面,并关闭其他所有非 tabBar 页面,路径后不能带参数
  • wx.navigateBack:关闭当前页面,返回上一页面或多级页面,可通过getCurrentPages()获取当前的页面栈,决定需要返回几层
  • wx.reLaunch——关闭所有页面,打开到应用内的某个页面

7.数据请求怎么封装

  • 将所有的接口放在同一的js文件中并导出(或者将请求地址,头,方法在一个js文件里统一定义为一个常量并导出)
  • 在app.js创建封装请求数据的方法
  • 在子页面中调用封装的方法请求数据

8.小程序的优缺点

 优点:

  • 无需下载
  • 打开速度快
  • 开发成本低
  • 为用户提供良好的安全保障。发布有一套严格的审查流程,不能通过审查的程序无法发布上线
  • 服务请求快

缺点:

  • 依托微信,不能开发后台管理功能
  • 大小限制不能超过2M,不能打开超过5个层级的页面
  • 不能有效的留住用户

 9.简述小程序原理

  • 小程序分为两个部分webview和appService,webview用来展现UI,appService用来处理业务逻辑、数据及接口调用,它们在两个进程中运行,通过系统层JSBridge实现通信,完成UI渲染、事件处理。

10.提高小程序的应用速度的方法

  • 减少默认data的大小
  • 组件化方案,公用的如弹框等写个自定义的组件,然后调用

11.setData的回调函数

微信小程序的setData实现是和react的setData实现类似的,所以它也是一个异步函数,并且有回调函数的参数,当然平时小量数据我们可能并没有感觉到它的异步,但是为了确保逻辑的正确执行,在需要用到setData后 data里的数据的步骤,请写入setData的回调函数中

12.如何实现下拉刷新

  • 先在app.json或page.json中配置 enablePullDownRefresh:true
  • page里用onPullDownRefresh函数,在下拉刷新时执行
  • 在下拉函数执行时发起数据请求,请求返回后,调用wx.stopPullDownRefresh停止下拉刷新的状态

13.bindtap和catchtap的区别是什么

  • bindtap不会阻止冒泡事件
  • catchtap阻止冒泡

14.微信小程序与H5的区别?

  • 运行环境不同(小程序在微信运行,h5在浏览器运行);
  • 开发成本不同(h5需要兼容不同的浏览器)
  • 应用在生产环境的运行流畅度不同

15.小程序和小程序之间的跳转

  • 在同一主体公众号上关联2个小程序appID
  • 用navigator,对应设置一些属性即可
  • target:miniProgram——其他小程序
  • target:self——当前小程序

 

 

 

 

 

 

 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值