当前位置:首页 > 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": {}
      }
    ]
  }]
}

使用组件按需加载:

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

uniapp页面管理

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

相关文章

vue实现动态显示页面

vue实现动态显示页面

动态显示页面的实现方法 在Vue中实现动态显示页面通常涉及数据绑定、条件渲染、列表渲染以及动态组件等技术。以下是几种常见的实现方式: 数据驱动视图 Vue的核心思想是数据驱动视图,通过修改数据自动更…

js实现页面跳转

js实现页面跳转

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

uniapp倒计时

uniapp倒计时

uniapp倒计时的实现方法 在uniapp中实现倒计时功能可以通过多种方式完成,以下是几种常见的实现方法: 使用setInterval实现基础倒计时 通过JavaScript的setInterva…

uniapp发布到应用商店

uniapp发布到应用商店

发布到苹果App Store 确保开发者账号已注册并加入Apple Developer Program,年费99美元。在Xcode中生成iOS发布证书(.p12)和描述文件(Provisioning…

uniapp打包

uniapp打包

uniapp打包步骤 H5平台打包 在项目根目录运行以下命令生成H5资源文件: npm run build:h5 打包完成后,文件默认输出到/dist/build/h5目录,可直接部署到Web服务器…

uniapp设置背景

uniapp设置背景

设置全局背景样式 在App.vue文件中添加全局样式,使用page选择器设置页面背景。这种方式会影响所有页面背景。 <style> page { background-col…