uniapp面试问啥
uniapp基础知识
跨平台开发原理
解释uniapp如何实现一套代码多端运行,重点说明基于Vue.js的语法扩展和条件编译机制。
生命周期差异
对比uniapp页面生命周期与Vue组件的生命周期,例如onLoad(页面加载)与created的区别,以及小程序端特有的onShow/onHide。
路由管理
描述uniapp的路由跳转方式(如uni.navigateTo)与Vue Router的差异,多端兼容性问题及解决方案。
性能优化相关
渲染性能
列举减少DOM节点数、避免复杂CSS选择器、使用v-if替代v-show等优化手段,说明为何在小程序端需特别注意。
分包加载
解释分包加载的原理及配置方法,如何通过subPackages拆分主包体积,提升首屏加载速度。
图片优化
强调压缩图片、使用CDN、懒加载等技术,注意多端适配时不同平台的图片格式限制。
多端兼容性问题
样式适配
分析rpx与rem的适用场景,如何处理H5与小程序端的样式差异,例如使用条件编译#ifdef H5。
API差异
举例说明各端API调用差异(如支付、定位),如何通过uni.getSystemInfo进行环境判断并调用对应API。

组件兼容性
讨论scroll-view、swiper等组件在不同端的表现差异,如何通过扩展组件或条件编译解决。
项目实战经验
状态管理
对比Vuex与uniapp的全局变量管理,如何封装uni.$emit和uni.$on实现跨页面通信。
插件生态
列举常用的uniapp插件(如uView UI),说明如何集成第三方SDK(如微信登录、支付宝支付)。
调试技巧
分享多端调试工具的使用(如开发者工具、真机调试),如何通过console.log差异化输出调试信息。

高级问题
原生交互
描述如何通过uni.requireNativePlugin调用原生模块,或使用renderjs提升渲染性能。
热更新机制
解释uniapp的热更新实现方式,如何通过wgt包进行静默更新并规避商店审核限制。
安全防护
讨论如何防范XSS攻击、数据加密(如md5签名)、敏感信息存储(避免直接写在代码中)。
代码示例
条件编译示例
// #ifdef H5
console.log('仅在H5环境执行');
// #endif
API封装示例
const getLocation = () => {
return new Promise((resolve, reject) => {
uni.getLocation({
success: resolve,
fail: reject
});
});
};
面试时可结合具体项目经验展开,突出解决复杂问题的思路和实际效果。






