更新记录

1.0.0(2025-05-14) 下载此版本

发布


平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 4.63 app-uvue × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序 鸿蒙元服务
× × × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × ×

宽屏适配-分栏示例

这是一个展示如何在 uni-app-x 中实现宽屏适配的示例项目。通过响应式设计和动态组件,实现在不同屏幕宽度下的显示效果。

实现原理

  1. 屏幕宽度检测 在 list.uvue 页面onLoad 生命周期中,通过uni.getSystemInfoSync()获取windowWidth或者uni.getDeviceInfo()获取deviceType,检测是否为宽屏

  2. 响应式布局

使用 CSS 媒体查询和条件渲染实现响应式布局

  • 在宽屏设备上,列表和详情会并排显示
  • 在窄屏设备上,列表和详情会分开展示
  1. 动态组件加载 把页面当组件导入,使用动态组件,根据当前选择的详情项动态加载对应的详情页组件

  2. 组件参数的传递方式

    • 窄屏模式:通过路由传参方式传递,组件页面使用 onLoad 生命周期获取参数
    • 宽屏模式:通过组件 props 方式传递,组件页面使用 watch 监听属性变化 使用 localArticleId 作为内部状态统一管理两种来源的参数,避免直接修改 props

宽屏模式

在宽屏模式下(屏幕宽度 >= 768px):

  • 列表和详情同时显示
  • 列表占据左侧 30% 宽度
  • 详情占据右侧 70% 宽度
  • 点击列表项时,详情区域动态更新

窄屏模式

在窄屏模式下(屏幕宽度 < 768px):

  • 默认只显示列表,点击列表项时,隐藏列表,显示详情
  • 列表和详情不会同时显示

项目结构

pages/
  ├── list/
  │   ├── list.uvue        # 主页面,包含列表和详情容器
  │   ├── detail1.uvue     # 详情组件1
  │   ├── detail2.uvue     # 详情组件2
  │   └── detail3.uvue     # 详情组件3

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问