复习
1. 什么是 uni-app?
uni-app 是一个使用 Vue.js 开发所有前端应用的框架,能够编译到 iOS、Android、各种小程序以及Web等多个平台。它允许开发者写一套代码,然后发布到各种平台上运行。
2. uni-app 的主要特点有哪些?
- 跨平台性:支持发布到iOS、Android、Web以及各大主流小程序平台。
- 组件丰富:提供大量预制的组件和模块,加速开发过程。
- 性能优化:编译时进行代码优化,运行时进行智能分包,确保应用加载快速。
- 易于学习:基于Vue.js,上手简单,学习曲线平缓。
- 社区支持:有着活跃的开发者社区和丰富的学习资源。
3. uni-app 在页面布局中使用的单位是什么?
uni-app 推荐使用 rpx
(responsive pixel)作为布局单位,它能够根据屏幕宽度自动缩放,实现不同设备上的自适应布局。
4. 如何在 uni-app 中进行条件编译?
uni-app 支持条件编译,允许在同一份代码中针对不同平台写不同的代码。条件编译可以通过 #ifdef
和 #ifndef
指令实现,例如:
javascript
// #ifdef H5
console.log('仅在H5平台打印');
// #endif
// #ifndef H5
console.log('非H5平台打印');
// #endif
// #ifdef H5
console.log('仅在H5平台打印');
// #endif
// #ifndef H5
console.log('非H5平台打印');
// #endif
5. uni-app 中如何管理状态?
uni-app 可以通过 Vuex 来进行状态管理。Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式,它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
6. 在 uni-app 中如何实现跨平台的数据请求?
uni-app 提供了 uni.request
API,用于进行网络请求。这个API封装了各平台的网络请求差异,开发者可以使用相同的代码实现跨平台的HTTP请求。
示例代码:
javascript
uni.request({
url: 'https://example.com/api/data', // 服务器接口地址
method: 'GET',
success: (res) => {
console.log(res.data);
},
fail: (err) => {
console.error(err);
}
});
uni.request({
url: 'https://example.com/api/data', // 服务器接口地址
method: 'GET',
success: (res) => {
console.log(res.data);
},
fail: (err) => {
console.error(err);
}
});
7. 解释 uni-app 的生命周期?
uni-app 的生命周期主要分为应用生命周期、页面生命周期和组件生命周期。这些生命周期的设计使得开发者能够更好地管理和控制应用、页面和组件的状态。
应用生命周期
应用生命周期主要关注整个应用的启动、前后台切换等状态变化。它包括以下几个重要的钩子函数:
- onLaunch: 当uni-app应用初始化完成时触发。这是应用启动的入口,此时可以进行应用级别的初始化操作,如登录验证、设备信息获取等。
- onShow: 当uni-app启动,或从后台进入前台显示时触发。可以处理应用被重新激活的逻辑。
- onHide: 当uni-app从前台进入后台时触发。可以处理如保存数据等清理任务。
- onError: 当uni-app发生脚本错误或者API调用失败时会触发此函数。
页面生命周期
页面生命周期主要关注页面的加载、显示、隐藏和卸载过程。页面的生命周期包括:
- onLoad: 页面加载时触发,一个页面只会调用一次。可以在这个阶段获取打开当前页面路径中的参数。
- onShow: 页面显示/切入前台时触发。每次打开页面都会调用。
- onReady: 页面初次渲染完成时触发,一个页面只会调用一次。代表页面已经准备妥当,可以和视图层交互。
- onHide: 页面隐藏/切入后台时触发。当navigateTo或底部tab切换时调用。
- onUnload: 页面卸载时触发。比如说使用了navigateTo的方式跳转到另一个页面时。
组件生命周期
组件生命周期主要关注组件的创建、挂载、更新和销毁过程。组件的生命周期包括:
- created: 组件实例刚被创建时执行,此阶段不能访问
this
。 - beforeMount: 在挂载开始之前被调用,对应的render函数首次被调用。
- mounted: 组件挂载到DOM上后执行,这时可以进行API调用等操作。
- beforeUpdate: 数据更新时调用,发生在虚拟DOM打补丁之前。
- updated: 组件更新后执行。
- beforeDestroy: 组件销毁前调用。
- destroyed: 组件销毁后调用。