千锋教育web前端高频面试题视频教程,kerwin大话前端面试秘籍(附答案)

P20 小程序高频面试题-2
一.怎么解决小程序的异步请求问题
1.在成功的回调中处理逻辑
2.对wx.request做promise封装,使用.then.then的链式调用来解决回调地狱
二.小程序关联微信公众号如何确定用户的唯一性
使用unionid来区分用户的唯一性
三.如何实现下拉刷新
1.在全局config中的window配置enablepullDownRefresh
2.在局部的page中定义 onPullDownRefresh 钩子函数,达到下拉刷新条件时,钩子执行,发出请求
3.请求返回后,调用 wx.stopPullDownRefresh 停止下拉刷新
三.bindtap和catchtap的区别是什么
1.相同点:都是点击事件函数
2.不同点:catchtap有阻止冒泡的作用
四.简述微信支付的业务流程
1.用户选择商品,提交订单,选择微信支付,这里前端需要发送请求给后端,其中包含商品ID,数量,金额
2.后端收到订单后,将订单存入后台系统,做好订单记录,调用微信的统一下单接口
3.统一下单接口返回一个预支付(prepay_id)的 ID,生成签名,将数据返回给前端
4.小程序工作人员需要调用 wx.requestPayment 方法来调用微信的支付界面
5.商户后台接收到支付通知
6.在 wx.requestPayment success返回一个成功的回调,用户会进入到一个支付成功的界面
7.开通微信支付不能是个人用户,只能是企业用户且要通过系统认证
五.什么是小程序自定义组件样式隔离,他有哪几种隔离模式?
1.app.wxss或页面的wxss中使用标签选择器来指定样式,这样会影响页面和全部组件,不推荐
2.指定特俗样式隔离选项 styleIsolation
六.在小程序中又哪些方法让图·宽高比例保持不变?
使用 mode:widthFix,这样宽度不会变,高度自适应
七.小程序组件传参(父子,子父)
1.父传子,父组件通过属性传值,子组件通过properties接收
2.子传父,需要在子组件中绑定一个自定义事件,使用 this.triggerEvent 传递,父组件通过事件来接收子组件传递过来的值
八.小程序组件的生命周期
1.created:组件实例被创建时执行
2.attached:组件实例进入页面节点树时执行(类似mounted)
3.ready:在视图层布局完成时执行
4.moved:组件实例移动到节点树另一个位置时执行
5.detached:组件实例从节点树中移出时执行
6.error:组件抛错时执行
九.小程序中页面生命周期
1.onLoad:在页面加载时调用,一个页面只会调用一次
2.onShow:显示页面是调用,每次打开页面都会调用一次
3.onReady:首次显示页面时会触发,渲染页面元素和样式,一个页面只会调用一次
4.onHidea:小程序进入后台运行或者页面跳转到其他页面时会触发
5.onUnload:使用重定向方法 wx.redirectTo或者关闭当前页返回上一页 wx.navigateBack()时触发
十.小程序怎么实现路由传参
1.wx.navigateTo
在url路路径后面拼接参数
另一个页面通过onload这个生命周期获取
2.wx.redirectTo
十一.小程序中路由跳转的区别
1.. wx.navigateTo():保留当前页面,跳转到应用内的某个页面。但是不能跳到tabbar 页面.
2.wx.redirectTo():关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到tabbar页面.
3.wx.switchTab():跳转到TabBar页面,并关闭其他所有非tabBar页面
4.wx.navigateBack()关闭当前页面,返回上一页面或多级页面。可通过getcurrentPages()获取当前的页面栈,决定需要返回几层
5. wx.reLaqnch():关闭所有页面,打开到应用内的某个页面
十二.tabbar实现的原理
在app.js中配置
十三.小程序性能为什么好
1.因为是轻量级的,体积小,还能分包,提升性能优化
2.运行在微信端,很多功能只需要使用API来实现,就可以实现跟APP一样的功能
3.是基于微信宿主环境的,微信客户端提供双线程去执行wxml, wxss,js文件,让小程序可以快速的一下将数接渲染出来呈现在用广的面前