uniapp 面试
uniapp优缺点
信息
优点:
a. 一套代码可以生成多端
b. 学习成本低,语法是vue的,组件是小程序的
c. 拓展能力强
d. 使用HBuilderX开发,支持vue语法
e. 突破了系统对H5调用原生能力的限制
缺点:
a. 问世时间短,很多地方不完善
b. 社区不大
c. 官方对问题的反馈不及时
d. 在Android平台上比微信小程序和iOS差
e. 文件命名受限
uniapp 生命周期
信息
vue:
beforeCreate(创建前)
created(创建后)
beforeMount(载入前,挂载)
mounted(载入后)
beforeUpdate(更新 前)
updated(更新后)
beforeDestroy(销毁前)
destroyed(销毁后)
小程序/uni-app:
- onLoad:首次进入页面加载时触发,可以在 onLoad 的参数中获取打开当前页面路径中的参数。
- onShow:加载完成后、后台切到前台或重新进入页面时触发
- onReady:页面首次渲染完成时触发
- onHide:从前台切到后台或进入其他页面触发
- onUnload:页面卸载时触发
- onPullDownRefresh:监听用户下拉动作
- onReachBottom:页面上拉触底事件的处理函数
- onShareAppMessage:用户点击右上角转发
路由与页面跳转
跨端适配—条件编译
- 条件编译
写法:
以 #ifdef 或 #ifndef 加 %PLATFORM% 开头,以 #endif 结尾
- 组件的条件编译
<!-- #ifdef %PLATFORM% -->
平台特有的组件
<!-- #endif -->
- 样式的条件编译
/* #ifdef %PLATFORM% */
平台特有样式
/* #endif */
- page.json 的条件 编译
// #ifdef APP-PLUS
{
"path":"pages/api/speeck",
"style":{
"navigationBarTitleText":"语音识别"
}
}
// #endif
- static 目录的条件编译 在不同平台,引用的静态资源可能也存在差异,通过 static 的的条件编译可以解决此问题,static 目录下新建不同平台的专有目录(目录名称同 %PLATFORM% 值域,但字母均为小写),专有目录下的静态资源只有在特定平台才会编译进去。 如以下目录结构,a.png 只有在微信小程序平台才会编译进去,b.png 在所有平台都会被编译。
┌─static
│ ├─mp-weixin
│ │ └─a.png
│ └─b.png
├─main.js
├─App.vue
├─manifest.json
└─pages.json
- 整体目录条件编译
如果想把各平台的页面文件更彻底的分开,也可以在uni-app项目根目录创建platforms目录,然后在下面进一步创建app-plus、mp-weixin等子目录,存放不同平台的文件。