当前位置:首页 > 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
分享给朋友:

相关文章

实现vue页面回退

实现vue页面回退

监听浏览器返回事件 在Vue组件中使用beforeRouteLeave导航守卫,可以监听路由变化。该方法在离开当前路由前触发,适用于需要确认或保存数据的场景。 beforeRouteLeave(…

vue实现页面刻度

vue实现页面刻度

实现页面刻度的基本思路 在Vue中实现页面刻度通常涉及动态渲染刻度线、数值标签及交互逻辑。可通过CSS绝对定位结合Vue的数据绑定能力实现。以下是具体方法: 刻度组件结构 创建一个Vue组件(如Sc…

vue实现动态显示页面

vue实现动态显示页面

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

uniapp消息推送

uniapp消息推送

uniapp消息推送实现方法 uniapp支持多种消息推送方式,包括uniPush、个推、极光推送等。以下为常见实现方案: uniPush(官方推荐) uniapp官方提供的推送服务,基于DClou…

vue实现 页面

vue实现 页面

Vue 实现页面的基本方法 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是实现页面的常见方法: 单文件组件(SFC) 使用 .vue 文件组织页面结构,包含模板、脚…

uniapp swiper禁止滑动

uniapp swiper禁止滑动

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