跳到主要内容

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:

  1. onLoad:首次进入页面加载时触发,可以在 onLoad 的参数中获取打开当前页面路径中的参数。
  2. onShow:加载完成后、后台切到前台或重新进入页面时触发
  3. onReady:页面首次渲染完成时触发
  4. onHide:从前台切到后台或进入其他页面触发
  5. onUnload:页面卸载时触发
  6. onPullDownRefresh:监听用户下拉动作
  7. onReachBottom:页面上拉触底事件的处理函数
  8. onShareAppMessage:用户点击右上角转发

路由与页面跳转

跨端适配—条件编译

  1. 条件编译 写法: 以 #ifdef 或 #ifndef 加 %PLATFORM% 开头,以 #endif 结尾
  2. 组件的条件编译
<!--  #ifdef  %PLATFORM% -->
平台特有的组件
<!-- #endif -->
  1. 样式的条件编译
/*  #ifdef  %PLATFORM%  */
平台特有样式
/* #endif */
  1. page.json 的条件 编译
// #ifdef APP-PLUS
{
"path":"pages/api/speeck",
"style":{
"navigationBarTitleText":"语音识别"
}
}

// #endif

  1. static 目录的条件编译 在不同平台,引用的静态资源可能也存在差异,通过 static 的的条件编译可以解决此问题,static 目录下新建不同平台的专有目录(目录名称同 %PLATFORM% 值域,但字母均为小写),专有目录下的静态资源只有在特定平台才会编译进去。 如以下目录结构,a.png 只有在微信小程序平台才会编译进去,b.png 在所有平台都会被编译。
┌─static                
│ ├─mp-weixin
│ │ └─a.png
│ └─b.png
├─main.js
├─App.vue
├─manifest.json
└─pages.json
  1. 整体目录条件编译

如果想把各平台的页面文件更彻底的分开,也可以在uni-app项目根目录创建platforms目录,然后在下面进一步创建app-plus、mp-weixin等子目录,存放不同平台的文件。