当前位置:首页 > uni-app

uniapp多页面搭建

2026-03-05 12:24:28uni-app

多页面配置基础

在uniapp中创建多页面应用,需在pages.json中配置页面路径。每个页面需要独立配置路径、样式和导航栏信息。示例配置如下:

{
  "pages": [
    {
      "path": "pages/index/index",
      "style": {
        "navigationBarTitleText": "首页"
      }
    },
    {
      "path": "pages/detail/detail",
      "style": {
        "navigationBarTitleText": "详情页"
      }
    }
  ]
}

页面跳转方法

使用uni.navigateTo实现页面跳转,保留当前页面并打开新页面。在需要跳转的按钮或事件中调用:

uni.navigateTo({
  url: '/pages/detail/detail'
})

使用uni.redirectTo关闭当前页面并跳转至新页面:

uni.redirectTo({
  url: '/pages/detail/detail'
})

页面间传参

通过URL传递参数,在目标页面的onLoad生命周期中接收:

// 发送参数
uni.navigateTo({
  url: '/pages/detail/detail?id=123&name=test'
})

// 接收参数
onLoad(options) {
  console.log(options.id) // 输出123
  console.log(options.name) // 输出test
}

分包加载优化

对于大型项目,使用分包加载减少首次加载时间。在pages.json中配置:

{
  "subPackages": [
    {
      "root": "subpackage",
      "pages": [
        {
          "path": "subpage/subpage",
          "style": {}
        }
      ]
    }
  ]
}

条件编译处理平台差异

通过条件编译处理不同平台的页面差异,示例:

// #ifdef H5
console.log('仅在H5平台执行')
// #endif

// #ifdef MP-WEIXIN
console.log('仅在微信小程序平台执行')
// #endif

全局样式管理

App.vue中定义全局样式,所有页面均可继承:

/* App.vue */
page {
  background-color: #f5f5f5;
  font-size: 16px;
}

页面生命周期注意事项

注意各页面生命周期的触发时机:

  • onLoad:页面加载时触发
  • onShow:页面显示时触发
  • onReady:页面初次渲染完成时触发
  • onHide:页面隐藏时触发
  • onUnload:页面卸载时触发

页面通信方案

使用全局事件总线实现页面间通信:

// 发送事件
uni.$emit('update', {data: 'new data'})

// 接收事件
uni.$on('update', function(data) {
  console.log(data)
})

页面返回传值

使用uni.navigateBack返回并传递数据:

// 前页面监听事件
uni.$on('backEvent', function(data) {
  console.log(data)
})

// 返回时触发
const pages = getCurrentPages()
const prevPage = pages[pages.length - 2]
prevPage.$vm.returnData = '返回数据'
uni.navigateBack()

页面预加载处理

onLoad前使用uni.preloadPage预加载页面:

uniapp多页面搭建

uni.preloadPage({
  url: '/pages/detail/detail'
})

标签: 多页uniapp
分享给朋友:

相关文章

uniapp swiper禁止滑动

uniapp swiper禁止滑动

禁用 Swiper 滑动的方法 在 UniApp 中,可以通过设置 disableTouch 属性或动态绑定 touchable 属性来禁止 Swiper 组件的滑动行为。 方法一:通过 disab…

uniapp改变checkbox选中状态

uniapp改变checkbox选中状态

修改 checkbox 选中状态的方法 在 uniapp 中修改 checkbox 的选中状态可以通过以下几种方式实现: 绑定 v-model 控制状态 通过数据绑定方式控制 checkbox 的…

海康 uniapp

海康 uniapp

海康威视与UniApp集成方案 海康威视的硬件设备(如摄像头、NVR等)与UniApp结合,通常需要通过海康的开放平台API或SDK实现功能调用。以下是具体实现方法: 获取海康威视开放平台权限 注册…

uniapp adb

uniapp adb

在UniApp中使用ADB的方法 ADB(Android Debug Bridge)是Android开发中常用的调试工具,可用于UniApp项目的真机调试、日志查看等操作。以下是具体使用方法: 连接…

uniapp gpio

uniapp gpio

在 uniapp 中直接操作 GPIO(通用输入输出)通常需要依赖原生平台的硬件接口,因为 uniapp 本身是基于前端技术的跨平台框架,不直接提供硬件访问能力。以下是实现 GPIO 控制的几种方法:…

uniapp图文

uniapp图文

图文混排实现方式 在uniapp中实现图文混排通常采用<rich-text>组件或自定义样式布局。<rich-text>支持解析HTML字符串,适合动态内容渲染。 <te…