uni-app页面路由为框架统一管理,开发者需要在pages.json里配置每个路由页面的路径和页面样式。类似的小程序在app.json中配置页面路由相同。所以uni-app的路由用法与Vue Router不同,如仍希望采用Vue Router方式管理路由,可在插件市场搜索Vue-Router。
uni-app有两种页面路由重定向方式:使用导航器组件扩展,调用API重定向。
框架以栈的形式管理当前所有页面,当发生路由切换的时候,页面栈的表现如下:
路由方式 | 页面栈表现 | 触发时机 |
---|---|---|
初始化 | 新页面入栈 | uni-app:的第一个页面 |
:新页面 | 新页面入栈 | 调用API uni.navigateTo ,使用组件 <navigator open-type =“ navigate” /> |
页面重启 | 当前页面出栈,新页面入栈 | 调用API uni.redirectTo ,使用组件 <navigator open-type =“ redirectTo” /> |
页面返回 | 页面不断出栈,直到目标返回页 | 调用API uni.navigateBack ,使用组件 <navigator open-type =“ navigateBack” /> ,用户按左上角返回按钮,安卓用户点击物理后退键 |
标签切换 | 页面全部出栈,只留下新的标签页面 | 调用API uni.switchTab ,使用组件 <navigator open-type =“ switchTab” /> ,用户切换Tab |
重加载 | 页面全部出栈,只留下新的页面 | 调用API uni.reLaunch ,使用组件 <navigator open-type =“ reLaunch” /> |
uni-app可通过process.env.NODE_ENV判断当前环境是开发环境还是生产环境。一般用于连接测试服务器或生产服务器的动态切换。
if(process.env.NODE_ENV === 'development'){
console.log('开发环境')
}else{
console.log('生产环境')
}
如果你需要自定义更多环境,某种测试环境:
快捷代码块
HBuilderX中敲入代码块uEnvDev,uEnvProd可以快速生成对应development,production的运行环境判定代码。
// uEnvDev
if (process.env.NODE_ENV === 'development') {
// TODO
}
// uEnvProd
if (process.env.NODE_ENV === 'production') {
// TODO
}
平台判断有2种场景,一种是在编译期判断,一种是在运行期判断。
// #ifdef H5
alert("只有h5平台才有alert方法")
// #endif
如上代码只会编译到H5的发行包里,其他平台的包不会包含如上代码。
switch(uni.getSystemInfoSync().platform){
case 'android':
console.log('运行Android上')
break;
case 'ios':
console.log('运行iOS上')
break;
default:
console.log('运行在开发者工具上')
break;
}
如有必要,也可以在条件编译里自己定义的一个变量,赋值。在后续运行代码中动态判断环境。
JavaScript 运行时间当使用 React Native 时,你将会在两个环境中运行 JavaScript 代码:在模拟器和电话中:[JavaScriptCore](ht...
jQuery Mobile 页面 开始学习 jQuery Mobile尽管jQuery Mobile兼容所有的移动设备,但是并不能完全兼容PC机(由于有限的CSS3支持...
IOS音频和视频(AudioVideo)简介 音频和视频在最新的设备中颇为常见。 将iosAVFoundation.framework和MediaPlayer.framework添加...
intent是具有其相关联数据的动作。Android使用Intents调用组件。Android中的组件包括activities (UI组件),services服务 (后台代...
Spark SQLJSON数据集Spark SQL能够自动推断JSON数据集的模式,加载它为一个SchemaRDD。这种转换可以通过下面两种方法来实现jsonF...
Spark GraphXPregel API图本身是递归数据结构,顶点的属性依赖于它们邻居的属性,这些邻居的属性又依赖于自己邻居的属性。所以许...
准备开始准备开始在本章,我们要创建一个 Storm 工程和我们的第一个 Storm 拓扑结构。NOTE: 下面假设你的 JRE 版本在 1.6 以上。...
在Neo4j CQL中,我们不能单独使用MATCH或RETURN命令,因此我们应该结合这两个命令从数据库检索数据。 例如:本示例演示如何使用...