在 uni-app 中,页面跳转和返回是通过 uni.navigateTo 和 uni.navigateBack 方法来实现的。这两个方法分别用于导航到新页面和返回到上一个页面。
在 uni-app 中,页面跳转和返回是通过 uni.navigateTo 和 uni.navigateBack 方法来实现的。这两个方法分别用于导航到新页面和返回到上一个页面。
无论是在 Angular,还是在 Vue,组件传输数据都是一个重要的功能。组件之间传输数据的方式有很多种,本文主要介绍在 uni-app 中常用的几种方式。
在 angular 里面,我大概知道存在有 3 种方式进行组件之间的数据传输:
在 uni-app 中,我们也可以借鉴这些思路来实现组件之间的数据传输。
父子组件传值是最常见的组件通信方式。父组件通过 props 向子组件传递数据,子组件通过事件向父组件传递数据。
父组件通过 props 向子组件传递数据。
对于较为基础的内容,分为显示用途的内容和交互用途的内容。
<text>:文本显示<icon>:图标显示<rich-text>:富文本显示<progress>:进度条<canvas>:画布<web-view>:嵌入网页<button>:按钮<checkbox>:复选框<form>:表单<input>:输入框<label>:标签<picker>:选择器
<picker-view>:滚动选择器
<picker-view-column> 使用<radio>:单选框<slider>:滑块<switch>:开关<textarea>:多行输入框<navigator>:页面链接在 uni-app 中,支持以下的平台:
| 平台名称 | 备注 |
|---|---|
APP-ANDROID |
Android |
APP-IOS |
iOS |
APP-APP-HARMONY |
鸿蒙 |
WEB |
网页 |
MP-WEIXIN |
微信小程序 |
#ifdef、#ifndef 条件编译在实现多平台兼容的时候可以使用 #ifdef 和 #ifndef 来进行条件编译。
#ifdef:如果满足条件,则编译该部分代码。
#ifndef:如果不满足条件,则编译该部分代码。
1 | <template> |
export default {} 里的内容,是页面的主要逻辑代码。包括几部分:
1 | <script> |
| 函数名 | 说明 | 平台差异说明 | 最低版本 |
|---|---|---|---|
| onInit | 监听页面初始化,其参数同 onLoad 参数,为上个页面传递的数据,参数类型为 Object(用于页面传参),触发时机早于 onLoad | 百度小程序 | 3.1.0+ |
| onLoad | 监听页面加载,该钩子被调用时,响应式数据、计算属性、方法、侦听器、props、slots 已设置完成,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参),参考示例。 | ||
| onShow | 监听页面显示,页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面 | ||
| onReady | 监听页面初次渲染完成,此时组件已挂载完成,DOM 树 ($el) 已可用,注意如果渲染速度快,会在页面进入动画完成前触发 | ||
| onHide | 监听页面隐藏 | ||
| onUnload | 监听页面卸载 | ||
| onResize | 监听窗口尺寸变化 | App、微信小程序、快手小程序 | |
| onPullDownRefresh | 监听用户下拉动作,一般用于下拉刷新,参考示例 | ||
| onReachBottom | 页面滚动到底部的事件(不是 scroll-view 滚到底),常用于下拉下一页数据。具体见下方注意事项 | ||
| onTabItemTap | 点击 tab 时触发,参数为 Object,具体见下方注意事项 | 微信小程序、QQ 小程序、支付宝小程序、百度小程序、H5、App、快手小程序、京东小程序 | |
| onShareAppMessage | 用户点击右上角分享 | 微信小程序、QQ 小程序、支付宝小程序、抖音小程序、飞书小程序、快手小程序、京东小程序 | |
| onPageScroll | 监听页面滚动,参数为 Object | nvue 不支持 | |
| onNavigationBarButtonTap | 监听原生标题栏按钮点击事件,参数为 Object | App、H5 | |
| onBackPress | 监听页面返回,返回 event = {from:backbutton、 navigateBack} ,backbutton 表示来源是左上角返回按钮或 android 返回键;navigateBack 表示来源是 uni.navigateBack;详见 | app、H5、支付宝小程序 | |
| onNavigationBarSearchInputChanged | 监听原生标题栏搜索输入框输入内容变化事件 | App、H5 | 1.6.0 |
| onNavigationBarSearchInputConfirmed | 监听原生标题栏搜索输入框搜索事件,用户点击软键盘上的 “搜索” 按钮时触发。 | App、H5 | 1.6.0 |
| onNavigationBarSearchInputClicked | 监听原生标题栏搜索输入框点击事件(pages.json 中的 searchInput 配置 disabled 为 true 时才会触发) | App、H5 | 1.6.0 |
| onShareTimeline | 监听用户点击右上角转发到朋友圈 | 微信小程序 | 2.8.1+ |
| onAddToFavorites | 监听用户点击右上角收藏 | 微信小程序、QQ 小程序 | 2.8.1+ |
uni-app 支持标准的 CSS 样式属性,本文档整理了常用的 CSS 属性,按功能分类便于查阅。
| 属性 | 说明 |
|---|---|
display |
设置元素显示类型 |
flex |
flex 项目的缩放比例 |
flex-basis |
flex 项目的初始主尺寸 |
flex-direction |
flex 容器主轴方向 |
flex-flow |
flex-direction 和 flex-wrap 的简写 |
flex-grow |
flex 项目的放大比例 |
flex-shrink |
flex 项目的缩小比例 |
flex-wrap |
flex 项目换行方式 |
justify-content |
主轴上的对齐方式 |
align-items |
交叉轴上的对齐方式 |
align-content |
多行在交叉轴上的对齐方式 |
align-self |
单个项目在交叉轴上的对齐方式 |
| 属性 | 说明 |
|---|---|
position |
元素定位方式 |
top |
元素距离顶部的距离 |
right |
元素距离右侧的距离 |
bottom |
元素距离底部的距离 |
left |
元素距离左侧的距离 |
z-index |
元素的堆叠顺序 |
| 属性 | 说明 |
|---|---|
width |
元素宽度 |
height |
元素高度 |
max-width |
最大宽度 |
min-width |
最小宽度 |
max-height |
最大高度 |
min-height |
最小高度 |
box-sizing |
盒模型计算方式 |
在 uni-app 中,容器组件用于布局和组织页面内容。
| 组件 | 说明 |
|---|---|
<view> |
基本的视图容器,类似于 HTML 的 <div> |
<scroll-view> |
可滚动的视图容器,支持横向和纵向滚动 |
<swiper> |
轮播图容器,用于实现图片或内容的轮播效果 |
<movable-view> |
可移动的视图容器,支持拖拽操作 |
<cover-view> |
覆盖在地图或视频等组件上的视图容器 |
<cover-image> |
覆盖在地图或视频等组件上的图片容器 |
<view> 组件如果使用 nvue,则需注意,包裹文字应该使用 <text> 组件。
1 | <view class="container"> |
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| hover-class | String | none | 指定按下去的样式类。当 hover-class=“none” 时,没有点击态效果 |
| hover-start-time | Number | 50 | 按住后多久出现点击态,单位毫秒。默认 50ms,ios 上建议设置为 0ms,安卓上建议设置为 50ms |
| hover-stay-time | Number | 400 | 手指松开后点击态保留时间,单位毫秒。默认 400ms,ios 上建议设置为 300ms,安卓上建议设置为 400ms |
| hover-stop-propagation | Boolean | false | 是否阻止本节点的祖先节点出现点击态 |
<scroll-view> 组件<template> 部分<template> 部分是 Vue 组件的模板部分,用于定义组件的结构和布局。它使用类似 HTML 的语法来描述组件的 UI。
<style> 部分<style> 部分用于定义组件的样式。可以使用普通的 CSS,也可以使用预处理器如 SCSS、LESS 等。通过添加 scoped 属性,可以使样式仅作用于当前组件,避免样式冲突。
<script> 部分<script> 部分是 Vue 组件的逻辑部分,用于定义组件的行为和数据。它使用 JavaScript 语法来编写组件的逻辑,包括数据定义、方法、生命周期钩子等。