微信小程序封装空白页组件

在实际项目开发中,封装一个空白页组件,当页面没数据的时候,可以显示空白页,并且可以根据调用组件传的值不一样,图片,文字和按钮文字页不一样,代码就直接粘贴啦

首先要明白:

Component构造器

Component构造器可用于定义组件,调用Component构造器时可以指定组件的属性、数据、方法等。(这个不懂的,可以去微信公众平台-框架-自定义组件)中去了解概念

WXML:

<view class="empty-content">

       <image src='{ {emptyImage}}' mode="widthFix" />

       <view wx:if="{ {showInfo}}" class="info text-lg text-default">{ {info}}</view>

      <view wx:if="{ {showButton}}" class="empty-btn">

            { {buttonTitle}}

     </view>

</view>

 

WXSS:

.empty-content {

    width: 100vw;

    height: 100vh;

    display: flex;

    flex-direction: column;

    align-items: c

<think>好的,我现在需要帮用户解决在微信小程序封装404组件的问题。首先,我得回忆一下微信小程序的自定义组件相关知识。根据用户提供的引用内容,特别是引用[1]和[2],里面提到了组件封装的不同方式,传参方法,以及空白页组件的例子,这可能对404组件有帮助。 首先,404组件通常用于显示页面不存在或数据为空的情况,所以可能需要一个图片、提示文字和返回按钮。用户提到的引用[2]中的空白页组件就是类似的场景,可以借鉴。比如,通过props传递图片路径、提示文字和按钮文字,这样组件就可以复用了。 接下来,我需要考虑组件的结构。组件应该包含一个图片区域、文字提示和一个按钮。样式方面,需要居中显示,可能需要使用flex布局。图片可以使用image组件,文字用text,按钮用button或者view模拟按钮,并绑定事件。 然后,传参方式。根据引用[1],组件传参有properties属性,这里需要定义几个参数,比如图片路径imgUrl、提示文字text、按钮文字btnText,可能还有图片模式mode。这样外部调用时可以根据情况自定义内容。 事件处理方面,当用户点击返回按钮时,应该触发一个自定义事件,比如onBack。在组件内部通过this.triggerEvent来触发,外部页面监听这个事件并处理跳转,比如返回首页。引用[4]中的上传图片组件也用了bind:change,类似的事件机制。 样式方面,需要注意组件样式隔离。微信小程序中自定义组件样式默认是隔离的,但可能需要调整,比如使用addGlobalClass选项或者外部传入class。不过根据引用[2]的例子,可能直接在组件内写样式,通过props传递图片URL等。 还有,组件的json文件中需要声明"component": true,并且在需要使用的页面的json文件中引用组件。这部分用户可能已经了解,但需要提醒。 另外,参考引用[3]中的项目,里面有很多常用组件,可能404组件也可以作为通用组件的一部分,保持统一的风格和可维护性。 测试方面,可能需要检查不同情况下的显示效果,比如传不同的图片、文字是否正确,按钮点击是否正常触发事件。同时,处理没有传参时的默认值,确保组件健壮性。 最后,给出示例代码的结构,包括wxml、wxss、js和json文件,并说明使用方式,比如在页面中引入组件,传递参数,监听事件。这样用户能够按照步骤实现。 可能的问题点:图片路径是否正确,事件绑定是否正确,样式是否适配不同屏幕。需要确保组件在不同页面调用时表现一致,并且易于定制。</think>### 微信小程序封装404页面组件示例教程 #### 一、组件封装思路 1. **功能需求**:显示友好404提示,包含图片、文字和返回首页按钮 2. **可配置参数**:支持自定义图片、文字内容和按钮样式 3. **事件处理**:点击按钮触发页面跳转 4. **样式规范**:保持与小程序整体风格一致[^2] #### 二、组件实现步骤 1. **创建组件目录** ```bash components/ └── error404/ ├── index.json ├── index.wxml ├── index.wxss └── index.js ``` 2. **组件核心代码** ```html <!-- components/error404/index.wxml --> <view class="error-container"> <image class="error-img" src="{{imgUrl}}" mode="{{mode}}"></image> <text class="error-text">{{text}}</text> <view class="btn-back" bind:tap="handleBack">{{btnText}}</view> </view> ``` ```javascript // components/error404/index.js Component({ properties: { imgUrl: { type: String, value: '/assets/images/404.png' // 默认图片路径 }, text: { type: String, value: '页面找不到了~' }, btnText: { type: String, value: '返回首页' }, mode: { type: String, value: 'aspectFit' } }, methods: { handleBack() { this.triggerEvent('onBack') } } }) ``` ```css /* components/error404/index.wxss */ .error-container { display: flex; flex-direction: column; align-items: center; padding: 40rpx; height: 100vh; } .error-img { width: 400rpx; height: 400rpx; margin-top: 20vh; } .error-text { margin: 40rpx 0; color: #666; font-size: 32rpx; } .btn-back { padding: 20rpx 60rpx; background: #07c160; color: white; border-radius: 40rpx; font-size: 30rpx; } ``` #### 三、组件使用方法 1. **页面引入组件** ```json // 页面.json { "usingComponents": { "error404": "/components/error404/index" } } ``` 2. **页面调用示例** ```html <!-- 页面.wxml --> <error404 imgUrl="/custom/404.png" text="您访问的页面已消失" btnText="回到主页" bind:onBack="handleBackHome" /> ``` 3. **页面逻辑处理** ```javascript // 页面.js Page({ handleBackHome() { wx.switchTab({ url: '/pages/index/index' }) } }) ``` #### 四、优化建议 1. **图片预加载**:可在小程序启动时预加载404图片资源 2. **多场景适配**:通过扩展参数支持不同错误类型(如500错误) 3. **动画效果**:添加渐显动画提升用户体验[^3] 4. **全局配置**:在app.js中设置默认配置项
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值