【愚公系列】《微信小程序与云开发从入门到实践》012-页面容器组件
标题 | 详情 |
---|---|
作者简介 | 愚公搬代码 |
头衔 | 华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。 |
近期荣誉 | 2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。 |
博客内容 | .NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。 |
欢迎 | 👍点赞、✍评论、⭐收藏 |
🚀前言
在微信小程序的开发中,页面容器组件扮演着至关重要的角色。作为构建小程序界面的基本单位,页面容器组件不仅负责页面的布局和结构,还帮助开发者有效管理内容的展示和交互。合理使用页面容器组件,可以让你的应用界面更加清晰、整洁,提升用户体验。
本篇文章将深入探讨微信小程序中的页面容器组件,详细介绍其类型、常用属性及实际应用场景。我们将通过具体实例,帮助你理解如何灵活运用页面容器组件,设计出符合用户需求的高质量小程序界面。
无论你是刚入门的小程序开发者,还是希望提升开发技能的资深工程师,这篇文章都将为你提供实用的指导和灵感。让我们一起探索页面容器组件的魅力,打造出更加优秀的小程序应用吧!
🚀一、页面容器组件
回忆一下我们经常使用的一些移动端应用,弹窗弹层类的页面并不少见。小程序中的页面容器组件 page-container 就是专为这种场景设计的。对于页面中的弹窗,如果采用普通 view 容器的方式实现,虽然看上去没有问题,但是当用户点击返回按钮时,会使当前整个页面返回而不是关闭弹窗,这是不符合体验要求的,但使用page-container可以很好地处理返回逻辑。
🔎1.page-container 页面容器示例
🦋1.1 步骤 1: 创建页面文件
首先,在 pages
文件夹下新建一个名为 pageContainerDemo
的页面文件。
🦋1.2 步骤 2: 编写 pageContainerDemo.wxml
文件
在 pageContainerDemo.wxml
文件中,编写如下代码:
<!-- pages/pageContainerDemo/pageContainerDemo.wxml -->
<view class="container">
<button bindtap="show">展示容器</button>
</view>
<page-container show="{{pageContainerShow}}">
<view>容器内部的内容</view>
<button bindtap="show">隐藏容器</button>
</page-container>
在上面的代码中,页面中创建了一个按钮来展示页面容器,同时在页面容器内添加了一个按钮来隐藏已经弹出的页面容器。
🦋1.3 步骤 3: 编写 pageContainerDemo.js
文件
在 pageContainerDemo.js
文件中,编写如下代码:
// pages/pageContainerDemo/pageContainerDemo.js
Page({
data: {
pageContainerShow: false, // 默认容器不展示
},
show: function() {
// 切换容器显示状态
this.setData({
pageContainerShow: !this.data.pageContainerShow
});
}
});
在 pageContainerDemo.js
中,定义了一个 show
方法来切换 pageContainerShow
状态。页面容器的显示与否通过 show
属性来控制。当点击按钮时,容器的显示状态会改变。
🦋1.4 说明
页面容器的展示与否是通过其 show
属性控制的。在页面容器展示出来后,效果如图所示。需要注意的是,一个页面中最多只能存在一个页面容器视图。
除了可以通过代码手动改变页面容器组件的 show
属性来实现关闭容器外,还可以通过以下方式关闭页面容器:
- 在 iOS 设备上使用右划手势。
- 在 Android 设备上点击返回按键。
- 调用小程序框架中的
wx.navigateBack
接口。
这样就完成了一个简单的页面容器切换效果的实现。
🔎2.page-container 属性解析
page-container 组件提供了许多包括组件位置、样式、动画等相关的可配置的属性,如表所示。
属性名 | 类型 | 意义 |
---|---|---|
show | 布尔值 | 是否显示容器组件 |
duration | 数值 | 设置容器组件显示/隐藏的动画时长,默认为 300(单位为毫秒) |
z-index | 数值 | 设置此弹窗的 Z 轴层级 |
overlay | 布尔值 | 设置是否显示遮罩层 |
position | 字符串 | 设置弹窗的位置,默认为 bottom,可设置为: - top: 从上弹出 - bottom: 从下弹出 - right: 从右弹出 - center: 从中间弹出 |
round | 布尔值 | 设置是否需要展示圆角 |
close-on-slideDown | 布尔值 | 设置隐藏的时候是否滑动一段距离后再关闭 |
overlay-style | 字符串 | 自定义遮罩层的样式 |
custom-style | 字符串 | 自定义弹窗样式 |
bind:beforeenter | 函数 | 弹窗将要进入页面时触发的回调事件 |
bind:enter | 函数 | 弹窗进入页面时触发的回调事件 |
bind:afterenter | 函数 | 弹窗进入页面后触发的回调事件 |
bind:beforeleave | 函数 | 弹窗将打开页面时触发的回调事件 |
bind:leave | 函数 | 弹窗打开页面时触发的回调事件 |
bind:afterleave | 函数 | 弹窗打开页面后触发的回调事件 |
bind:clickoverlay | 函数 | 点击遮罩层时触发的回调事件 |
- 点赞
- 收藏
- 关注作者
评论(0)