【知识总结】前端高频微信小程序面试题合集
在开发中,遇到一个一个小难题,就是app.js中onShow事件会因调用其他API而触发,比如,wx.chooseImage、wx.makePhoneCall、wx.previewImage。
小程序热启动确实是一个坑,因为通过扫码或者分享进入也会热启动,一般开发者都只在onLaunch处理扫码进入的相关逻辑,热启动时就出bug了。
目前比较好的办法就是onShow中通过首个参数option时下的scene判断进入的场景,根据场景处理相关逻辑。
-
WXML:是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。 WXSS:是一套样式语言,用于描述WXML组件样式。 js:处理逻辑,网络请求。 json:小程序设置,如页面注册、页面标题及tarBar。
-
将所有的接口放在js文件中并导出 在app.js中创建封装请求数据的方法 在子页面中调用封装的方法请求数据
有哪些参数传值的方法
-
给html元素添加data属性来传递我们需要的值,然后通过e.currentTarget.dataset或onload的param参数获取。但data名称不能有大写字母,不可以存放对象。 设置id的方法标识来传值通过e.currentTarget.id获取设置的id的值,然后通过设置全局对象的方式来传递数值。 在navigator中添加参数传值。
-
提高页面加载速度 用户行为预测 减少默认data的大小 组件化方案
怎么解决小程序的异步请求问题
在回调函数中调用下一个组件的函数
app.js
success:function(info){ that.apitnCallback(info) }
index.js
onLoad:function(){ app.apitnCallback = res=>{ console.log(res) } }
小程序的双向绑定和vue哪里不一样
小程序直接this.data的属性是不可以同步到视图的,必须调用:
this.setData({ noBind:true})
如何实现下拉刷新
首先在全局config中window配置enablePullDownRefresh
在Page中定义onPullDownRefresh钩子函数,到达下拉刷新条件后,该钩子函数执行,发起请求方法,请求返回后,调用wx.stopPullDownRefresh停止下拉刷新。
bindtap和catchtap的区别是什么
相同点
首先他们都是作为点击事件函数,就是点击时触发。在这个作用上他们是一样的,可以不做区分。
不同点
他们的不同点主要是bindtap是不会阻止冒泡事件的,catchtap是阻止冒泡的。
简述下wx.navigateTo()、wx.redirectTo()、wx.switchTab()、wx.navigateBack()、wx.reLaunch()的区别
-
wx.navigateTo():保留当前页面,跳转到应用内的某个页面。但是不能跳转到tabbar页面。 wx.redirectTo():关闭当前页面,跳转到应用内的某个页面。但是不能跳转到tabbar页面。 wx.switchTab():跳转到abBar页面,并关闭其他所有非tabBar页面。 wx.navigateBack():关闭当前页面,返回上一页或者多级页面。可通过getCurrentPages()获取当前的页面栈,决定需要返回几层。 wx.reLaunch():关闭所有页面,打开到应用内的某个页面。