设置自适应和固定宽高问题取舍:
设置自适应会导致行内元素发生跳动,设置宽高会导致元素无法自适应
display:inline-flex;
点击事件:bind:tap="onLike"
bind和catch区别:
bind不会阻止事件的往上冒泡,catch会阻止事件往上冒泡;
let属性:
let限制在块作用域,只作用作用域
wx.request请求数据
promise解决回调函数的嵌套。
小程序面试题:
一. 封装数据请求
- 将所有的接口放在统一的js文件中并导出,在app.js中使用小程序api中提供的request封装请求数据的方法,在子页面中调用封装的方法请求数据
二 . 页面间传递数据的方法
- 使用全局变量实现数据的传递
- 页面跳转或重定向时,使用url带参数传递数据
- 使用组件模板template传递参数
- 使用缓存传递参数
- 使用数据库传递数据
三. 小程序和vue双向绑定有什么不同
- 小程序直接this.data的属性是不可以同步到视图的,必须调用this.setData()方法
this.setData({
noBind:true
})
四. 生命周期函数
- onLoad()页面加载时触动,只会调用一次,可获取当前页面路径中的参数
- onShow()页面显示/切入前台时触发,一般用来发送数据请求
- onReady()页面初次渲染完成时触发,只会调用一次,代表页面可以和视图层进行交互
- onHide()页面隐藏/切入后台时触发,如底部tab栏切换页面或小程序切入后台等
- onUnload()页面卸载时触发,如redirectTo或navigateBack到其他页面时
五. 实现下拉刷新
用view代替scroll-view,,设置onPullDownRefresh函数实现
六. 小程序调用后台接口遇到哪些问题?
- 数据的大小有限制,超过范围会直接导致整个小程序崩溃,除非重启小程序;
- 小程序不可以直接渲染文章内容页这类型的html文本内容,若需显示要借住插件,但插件渲染会导致页面加载变慢,所以最好在后台对文章内容的html进行过滤,后台直接处理批量替换p标签div标签为view标签,然后其它的标签让插件来做,减轻前端的时间。
七. 小程序的异步请求问题
- 在回调函数中调用下一个组件函数
app.js
success: function (info) {
that.apirtnCallback(info)
}
index.js
onLoad: function () {
app.apirtnCallback = res => {
console.log(res)
}
}
八. 下拉刷新加载更多
/**
* 上拉刷新触底加载更多
*/
onReachBottom: function () {
...
// 显示加载图标
wx.showLoading({
title: '玩命加载中',
})
......
}