当前位置:首页 > uni-app

uniapp页面管理

2026-02-06 05:23:35uni-app

uniapp页面管理基础概念

uniapp的页面管理基于Vue.js框架,采用单文件组件(SFC)形式组织页面。每个页面由.vue文件构成,包含模板、脚本和样式三部分。页面路由通过pages.json配置文件统一管理,无需手动编写路由规则。

页面配置方法

pages.json中定义页面路径和窗口样式:

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

页面跳转方式

navigateTo
保留当前页面,跳转到应用内某个页面:

uni.navigateTo({
  url: '/pages/detail/detail?id=1'
})

redirectTo
关闭当前页面,跳转到应用内某个页面:

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

reLaunch
关闭所有页面,打开应用内某个页面:

uni.reLaunch({
  url: '/pages/index/index'
})

页面传参技巧

通过URL拼接参数传递数据:

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

// 接收方
onLoad(options) {
  console.log(options.id) // 输出1
  console.log(options.name) // 输出test
}

复杂对象建议使用全局变量或Vuex管理:

// 通过Vuex存储
this.$store.commit('setDetailData', {id: 1, name: 'test'})
uni.navigateTo({url: '/pages/detail/detail'})

// 目标页面获取
computed: {
  detailData() {
    return this.$store.state.detailData
  }
}

页面生命周期管理

uniapp页面生命周期包含Vue组件生命周期和特有的小程序生命周期:

export default {
  onLoad(options) {}, // 页面加载时触发
  onShow() {},       // 页面显示时触发
  onReady() {},      // 页面初次渲染完成时触发
  onHide() {},       // 页面隐藏时触发
  onUnload() {},     // 页面卸载时触发
  mounted() {}       // Vue生命周期钩子
}

页面通信方案

事件总线方式
创建全局事件监听和触发机制:

// main.js中创建EventBus
Vue.prototype.$EventBus = new Vue()

// 页面A发送事件
this.$EventBus.$emit('pageEvent', {data: 'value'})

// 页面B接收事件
this.$EventBus.$on('pageEvent', (data) => {
  console.log(data)
})

uni.$on/uni.$emit
跨页面事件通信方案:

// 页面A触发事件
uni.$emit('update', {msg: '数据更新'})

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

页面栈管理技巧

获取当前页面栈信息:

const pages = getCurrentPages()
const currentPage = pages[pages.length - 1]
console.log(currentPage.route)

动态修改页面标题:

uni.setNavigationBarTitle({
  title: '新标题'
})

页面性能优化

启用分包加载减少首屏体积:

{
  "subPackages": [{
    "root": "packageA",
    "pages": [
      {
        "path": "page1",
        "style": {}
      }
    ]
  }]
}

使用组件按需加载:

uniapp页面管理

components: {
  'lazy-component': () => import('@/components/lazy-component.vue')
}

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

相关文章

js实现页面跳转

js实现页面跳转

使用 window.location.href 通过修改 window.location.href 属性实现页面跳转: window.location.href = 'https://example…

uniapp极光推送

uniapp极光推送

uniapp极光推送集成步骤 准备工作 注册极光推送开发者账号,创建应用获取AppKey。确保uniapp项目已配置好原生插件支持。 安装插件 在uniapp项目manifest.json文件中,选…

uniapp 数据

uniapp 数据

uniapp 数据管理方法 本地存储 使用 uni.setStorageSync 和 uni.getStorageSync 进行本地数据持久化存储。适合保存用户偏好设置或小型数据。 // 存储数…

uniapp 编辑

uniapp 编辑

uniapp 编辑功能实现方法 在uniapp中实现编辑功能通常涉及表单处理、数据绑定和状态管理。以下为常见实现方式: 表单数据双向绑定 使用v-model指令实现表单元素与数据的双向绑定: &l…

uniapp 3.0

uniapp 3.0

uniapp 3.0 核心特性 uniapp 3.0 是 DCloud 推出的跨端开发框架升级版本,支持一套代码编译到 iOS、Android、Web 及各类小程序平台。以下为关键特性与使用要点:…

实现js页面跳转

实现js页面跳转

使用 window.location.href 通过修改 window.location.href 属性实现跳转,这是最常用的方法: window.location.href = "https://…