uniapp 面试题总结常考

uniapp

文件详情

├── pages                      # 页面文件夹
│   │── index                  # index文件夹
│   │   │── index.vue          # index页面
├── static                     # 静态资源(类似于图片 字体图标等)
│   │── logo.png               # 图片,视频或字体图标
├── unpackage                  # 存放打包输出的文件
├── App.vue                    # 项目根组件
├── main.js                    # 项目入口文件
├── manifest.json              # 应用的配置文件
├── pages.json                 # 页面存放目录  page属性中第一项为项目启动页
├── uni.scss                   # 整体控制应用的风格

globalStyle 属性

属性 类型 默认值 描述 平台差异说明
navigationBarBackgroundColor HexColor #F7F7F7 导航栏背景颜色(同状态栏背景色) APP与H5为#F7F7F7,小程序平台请参考相应小程序文档
navigationBarTextStyle String white 导航栏标题颜色及状态栏前景颜色,仅支持 black/white
navigationBarTitleText String 导航栏标题文字内容
navigationStyle String default 导航栏样式,仅支持 default/custom。custom即取消默认的原生导航栏,需看使用注意 微信小程序 7.0+、百度小程序、H5、App(2.0.3+)
backgroundColor HexColor #ffffff 下拉显示出来的窗口的背景色 微信小程序
backgroundTextStyle String dark 下拉 loading 的样式,仅支持 dark / light 微信小程序
enablePullDownRefresh Boolean false 是否开启下拉刷新,详见页面生命周期
onReachBottomDistance Number 50 页面上拉触底事件触发时距页面底部距离,单位只支持px,详见页面生命周期
backgroundColorTop HexColor #ffffff 顶部窗口的背景色(bounce回弹区域) 仅 iOS 平台
backgroundColorBottom HexColor #ffffff 底部窗口的背景色(bounce回弹区域) 仅 iOS 平台
titleImage String 导航栏图片地址(替换当前文字标题),支付宝小程序内必须使用https的图片链接地址 支付宝小程序、H5、APP
transparentTitle String none 导航栏整体(前景、背景)透明设置。支持 always 一直透明 / auto 滑动自适应 / none 不透明 支付宝小程序、H5、APP
titlePenetrate String NO 导航栏点击穿透 支付宝小程序、H5
pageOrientation String portrait 横屏配置,屏幕旋转设置,仅支持 auto / portrait / landscape 详见 响应显示区域变化 App 2.4.7+、微信小程序
animationType String pop-in 窗口显示的动画效果,详见:窗口动画 App
animationDuration Number 300 窗口显示动画的持续时间,单位为 ms App
app-plus Object 设置编译到 App 平台的特定样式,配置项参考下方 app-plus App
h5 Object 设置编译到 H5 平台的特定样式,配置项参考下方 H5 H5
mp-alipay Object 设置编译到 mp-alipay 平台的特定样式,配置项参考下方 MP-ALIPAY 支付宝小程序
mp-weixin Object 设置编译到 mp-weixin 平台的特定样式 微信小程序
mp-baidu Object 设置编译到 mp-baidu 平台的特定样式 百度小程序
mp-toutiao Object 设置编译到 mp-toutiao 平台的特定样式 字节跳动小程序
mp-qq Object 设置编译到 mp-qq 平台的特定样式 QQ小程序
usingComponents Object 引用小程序组件,参考 小程序组件
renderingMode String 同层渲染,webrtc(实时音视频) 无法正常时尝试配置 seperated 强制关掉同层 微信小程序
leftWindow Boolean true 当存在 leftWindow 时,默认是否显示 leftWindow H5
topWindow Boolean true 当存在
### UniApp 面试常见问题及答案 #### 1. 什么是 UniAppUniApp 是一个基于 Vue.js 的跨平台应用开发框架,可以使用 Vue.js 的开发语法编写一次代码,然后通过编译生成可以在多个平台(包括 iOS、Android、H5 等)上运行的应用[^3]。它支持跨平台开发,具有高性能表现,并且可以调用设备的硬件功能和第三方原生 SDK。 #### 2. UniApp 支持哪些平台? UniApp 支持编译到多个平台,包括 iOS、Android、H5 以及各种小程序(如微信、支付宝、百度等)。每个平台都有其特定的功能和限制,开发者可以通过条件编译来适配不同平台的需求[^2]。 #### 3. 如何在 UniApp 中实现条件编译? UniApp 提供了条件编译的功能,允许开发者针对不同的平台编写特定的代码。条件编译通过 `#ifdef`、`#ifndef`、`#endif` 等指令实现。例如: ```javascript // #ifdef MP-WEIXIN console.log('这是微信小程序'); // #endif // #ifdef H5 console.log('这是 H5 平台'); // #endif ``` 这种机制可以帮助开发者处理不同平台之间的差异性[^1]。 #### 4. 在 UniApp 中如何处理不同平台的屏幕尺寸和分辨率? 为了适配不同平台的屏幕尺寸和分辨率,UniApp 提供了多种解决方案: - 使用百分比宽度:通过设置元素宽度为百分比值,确保布局自适应。 - 使用 Flex 布局:利用 CSS Flexbox 实现动态布局。 - 使用媒体查询:根据屏幕尺寸应用不同的样式规则。 - 使用 Vue 的条件渲染:根据平台特性动态调整组件或样式[^5]。 #### 5. UniApp 的性能如何?与原生开发相比呢? UniApp 的性能接近原生应用,因为它使用了原生渲染技术。虽然跨平台开发可能会引入一些性能开销,但在大多数场景下,UniApp 的性能表现已经足够优秀。对于需要极致性能的应用,可以选择混合开发模式,结合原生插件来提升性能[^3]。 #### 6. 如何实现 UniApp 的全局状态管理? UniApp 可以使用 Vuex 进行全局状态管理。Vuex 是 Vue.js 官方的状态管理库,能够帮助开发者集中管理应用的状态。以下是一个简单的 Vuex 示例: ```javascript // store.js import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex); export default new Vuex.Store({ state: { count: 0, }, mutations: { increment(state) { state.count++; }, }, actions: { increment({ commit }) { commit('increment'); }, }, }); ``` #### 7. 在 UniApp 中如何进行网络请求? UniApp 提供了 `uni.request` 方法来进行网络请求。以下是一个简单的 GET 请求示例: ```javascript uni.request({ url: 'https://example.com/api/data', method: 'GET', success(res) { console.log('请求成功', res.data); }, fail(err) { console.error('请求失败', err); }, }); ``` #### 8. 如何在 UniApp 中实现路由导航? UniApp 提供了多种路由导航方式,包括 `navigateTo`、`redirectTo`、`reLaunch`、`switchTab` 和 `navigateBack`。以下是这些方法的简单说明: - `navigateTo`:跳转到新页面,保留当前页面。 - `redirectTo`:关闭当前页面,跳转到新页面。 - `reLaunch`:关闭所有页面,打开到目标页面。 - `switchTab`:跳转到 tabBar 页面。 - `navigateBack`:返回上一级或多级页面[^14]。 #### 9. UniApp 的生命周期钩子有哪些? UniApp 的生命周期钩子与 Vue.js 类似,主要包括以下几个阶段: - 创建阶段:`onLaunch`、`onShow`、`onHide`、`onError`。 - 页面生命周期:`onLoad`、`onShow`、`onReady`、`onHide`、`onUnload`、`onPullDownRefresh`、`onReachBottom`、`onShareAppMessage` 等。 这些钩子函数可以帮助开发者在不同阶段执行特定逻辑[^24]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值