微信小脚本入门学习教程,从入门到精通,微信小程序开发进阶(7)

news/2025/10/20 17:25:35/文章来源:https://www.cnblogs.com/wzzkaifa/p/19153181

微信小程序开发进阶


一、自定义标签栏(TabBar)开发

知识点1:创建自定义组件

语法说明:

微信小程序允许开发者通过 Component() 构造器创建自定义组件。组件包含四个文件:.json(配置)、.wxml(结构)、.wxss(样式)、.js(逻辑)。

案例代码:创建一个自定义标签栏组件 custom-tabbar

custom-tabbar.json
{
"component": true,
"usingComponents": {}
}
custom-tabbar.wxml
<!-- 自定义标签栏结构 --><view class="tabbar"><viewclass="tabbar-item {{selected === index ? 'active' : ''}}"wx:for="{{list}}"wx:key="index"bindtap="switchTab"data-index="{{index}}"><image src="{{item.iconPath}}" class="icon" /><text class="text">{{item.text}}</text></view>
</view>
custom-tabbar.wxss
.tabbar {
position: fixed;
bottom: 0;
left: 0;
right: 0;
height: 50px;
display: flex;
background-color: #fff;
border-top: 1px solid #e5e5e5;
}
.tabbar-item {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
color: #999;
}
.tabbar-item.active {
color: #07c160;
}
.icon {
width: 24px;
height: 24px;
margin-bottom: 2px;
}
custom-tabbar.js
Component({
properties: {
// 接收父组件传入的 tab 列表
list: {
type: Array,
value: []
},
// 当前选中项索引
selected: {
type: Number,
value: 0
}
},
methods: {
// 切换 tab 时触发
switchTab(e) {
const index = e.currentTarget.dataset.index;
this.setData({ selected: index });
// 触发自定义事件通知父组件
this.triggerEvent('tabchange', { index });
}
}
});

知识点2:使用自定义组件

语法说明:

在页面的 .json 文件中通过 usingComponents 引入组件,在 .wxml 中使用。

案例代码:在首页使用 custom-tabbar

pages/index/index.json
{
"usingComponents": {
"custom-tabbar": "/components/custom-tabbar/custom-tabbar"
}
}
pages/index/index.js
Page({
data: {
tabList: [
{ text: '首页', iconPath: '/assets/home.png', selectedIconPath: '/assets/home-active.png' },
{ text: '电影', iconPath: '/assets/movie.png', selectedIconPath: '/assets/movie-active.png' },
{ text: '待办', iconPath: '/assets/todo.png', selectedIconPath: '/assets/todo-active.png' }
],
activeTab: 0
},
onTabChange(e) {
const { index } = e.detail;
this.setData({ activeTab: index });
// 跳转页面(需配合 navigator 或 wx.switchTab)
wx.switchTab({ url: ['/pages/index/index', '/pages/movie/movie', '/pages/todo/todo'][index] });
}
});
pages/index/index.wxml
<view class="container"><!-- 页面内容 --></view><!-- 自定义标签栏 --><custom-tabbarlist="{{tabList}}"selected="{{activeTab}}"bind:tabchange="onTabChange"/>

知识点3:使用自定义组件渲染标签栏(替代原生 tabBar)

说明:

微信原生 tabBar 无法在非 tabBar 页面使用,因此使用自定义组件实现灵活标签栏。

注意:若使用自定义 tabbar,需关闭 app.json 中的 tabBar 配置,或仅在非 tabBar 页面使用。


知识点4:Vant Weapp 组件库

语法说明:

Vant Weapp 是有赞开源的微信小程序 UI 组件库,提供按钮、弹窗、列表等常用组件。

安装与使用:

  1. 下载 Vant Weapp
  2. dist 文件夹复制到项目 miniprogram_npm/@vant/weapp/
  3. 在页面 json 中引入组件

案例:使用 Vant 的 Button 和 Tab 组件

pages/movie/movie.json
{
"usingComponents": {
"van-button": "@vant/weapp/button/index",
"van-tabs": "@vant/weapp/tabs/index",
"van-tab": "@vant/weapp/tab/index"
}
}
pages/movie/movie.wxml
<van-tabs active="{{activeTab}}" bind:change="onChange">
<van-tab title="正在热映">热映列表</van-tab>
<van-tab title="即将上映">即将上映</van-tab>
</van-tabs>
<van-button type="primary" bind:click="loadMore">加载更多</van-button>
pages/movie/movie.js
Page({
data: {
activeTab: 0
},
onChange(event) {
this.setData({ activeTab: event.detail.index });
},
loadMore() {
wx.showToast({ title: '加载中...', icon: 'none' });
}
});

二、电影列表页面开发

知识点1:WeUI 组件库

说明:

WeUI 是微信官方设计语言,提供基础样式。可直接引入 weui-miniprogram

使用方式(简略):

{
"usingComponents": {
"mp-cell": "weui-miniprogram/cell/cell"
}
}

知识点2:navigator 组件

语法说明:

<navigator> 用于页面跳转,支持 urlopen-type(如 navigate, redirect, switchTab)等属性。

案例代码:

<navigator url="/pages/detail/detail?id=123" open-type="navigate"><view class="movie-item"><text>肖申克的救赎</text></view>
</navigator>
传递参数接收(detail 页面):
Page({
onLoad(options) {
console.log('电影ID:', options.id); // 输出: 123
}
});

三、待办事项(uni-app 跨平台开发)

知识点1:uni-app 框架概述

知识点2-6:HBuilder X、项目结构、配置等

案例:uni-app 待办事项

pages/todo/todo.vue

<script>
export default {data() {return {newTodo: '',todos: uni.getStorageSync('todos') || []};},methods: {addTodo() {if (this.newTodo.trim()) {this.todos.push({ text: this.newTodo, done: false });this.saveTodos();this.newTodo = '';}},toggleDone(index) {this.todos[index].done = !this.todos[index].done;this.saveTodos();},removeTodo(index) {this.todos.splice(index, 1);this.saveTodos();},saveTodos() {uni.setStorageSync('todos', this.todos);}}
};
</script>
manifest.json(全局配置)
{
"name": "MyTodoApp",
"appid": "",
"description": "",
"versionName": "1.0.0",
"versionCode": "100",
"app-plus": { /* App 配置 */ },
"mp-weixin": {
"appid": "你的小程序appid",
"setting": {
"urlCheck": false
}
}
}

使用 HBuilder X 编译后,可直接运行到微信开发者工具。


四、综合性案例:电影+待办+自定义标签栏整合

场景描述:

整合关键点:

  1. app.json 配置页面路径(不使用原生 tabBar)
{
"pages": [
"pages/index/index",
"pages/movie/movie",
"pages/todo/todo",
"pages/detail/detail"
],
"window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#07c160",
"navigationBarTitleText": "小程序进阶",
"navigationBarTextStyle": "white"
}
}
  1. 每个页面引入 custom-tabbar
  2. 电影详情页接收参数并展示
  3. 待办事项使用本地缓存持久化

总结

模块核心知识点技术要点
自定义标签栏Component 构造器、props、自定义事件替代原生 tabBar,灵活控制
电影列表navigator 跳转、Vant Weapp、WeUI页面传参、UI 组件库使用
待办事项uni-app、Vue 语法、本地存储跨平台开发、数据持久化
综合项目多页面协调、组件复用、状态管理工程化思维、模块解耦

以上内容覆盖了你提供章节中的全部知识点,并通过可运行的代码示例详细注释帮助理解。建议在微信开发者工具中逐个实践,加深掌握。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/941411.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android studio build报错 - show

build报错> Task :app:checkDebugAarMetadata FAILED Execution failed for task :app:checkDebugAarMetadata. > Could not resolve all files for configuration :app:debugRuntimeClasspath.> Could not r…

2025 彩石瓦厂家最新推荐排行榜:权威解析金属瓦 / 屋顶瓦优质厂商,金属/屋顶/凉亭/昆明/云南彩石瓦厂家推荐

引言 随着绿色建筑理念深化与屋面材料升级,彩石瓦凭借耐候性强、装饰性佳的优势,成为别墅、文旅项目及新农村建设的核心选材。但市场现状令人担忧:既有产品基材厚度不达标、彩砂脱落等质量隐患,又存在新锐品牌与传…

2025 年最新干燥剂厂家推荐排行榜:深度剖析各品牌实力,涵盖氯化钙 / 氯化镁 / 硅胶等多类型干燥剂优选指南

在工业生产与日常生活中,干燥剂的防潮、保鲜作用愈发关键,小到食品药品储存,大到集装箱海运防潮,都离不开优质干燥剂的支撑。但当前干燥剂市场品牌繁杂,部分小品牌产品吸湿能力弱、持久度差,难以满足不同行业的专…

2025年螺杆泵厂家权威推荐榜:单干污泥料斗/浆料进料/高压耐磨/石油工业化工环保食品级船舶造纸加药计量/耐腐蚀高粘度污水污泥不锈钢铸铁304316全系解析

2025年螺杆泵厂家权威推荐榜:单干污泥料斗/浆料进料/高压耐磨/石油工业化工环保食品级船舶造纸加药计量/耐腐蚀高粘度污水污泥不锈钢铸铁304316全系解析 螺杆泵作为现代工业流程中不可或缺的核心设备,其技术水平和产…

2025 年工业 pH 计厂家最新推荐榜单:在线 / 污水 / 脱硫 / 发酵 / 化工等场景适用,国内优质厂家实力排行

引言 在工业生产与科研实验中,pH 计的精准度、稳定性直接关系到生产安全与实验结果可靠性。当前市场上 pH 计品牌杂乱,部分产品存在测量误差大、适配性差、售后缺失等问题,难以满足化工、环保、食品等多行业多样化需…

文明元代码:价值原语、共识具身与关系语法

文明元代码:价值原语、共识具身与关系语法 ——论人类共同世界的构建与演进 作者:岐金兰 机构:独立技术哲学研究者 导言:意义的生成之网 人类文明不仅是一座由制度与器物构筑的大厦,更是一张在历史时空中不断编织…

2025年扒胎机厂家推荐排行榜,液压无损扒胎机,全自动扒胎机,汽保扒胎机,轮胎扒胎机,汽车扒胎机,大轮胎扒胎机,无损扒胎机,辽南扒胎机,小车扒胎机,立式扒胎机公司推荐

2025年扒胎机行业深度解析与权威推荐榜单 行业背景与发展趋势 随着汽车保有量的持续增长和汽车后服务市场的快速发展,扒胎机作为汽保设备领域的重要装备,正经历着技术革新与产业升级的关键时期。液压无损扒胎机、全自…

springboot集成echarts显示图表

核心实体类设计 1.统一返回结果类 (Result.java) import lombok.Data;@Data public class Result<T> {private boolean success;private String message;private T data;public static <T> Result<T>…

2025年储罐厂家权威推荐榜:钢衬塑储罐/钢塑复合储罐/化工储罐/防腐储罐/PE储罐/盐酸储罐/硫酸储罐/聚丙烯储罐/不锈钢储罐/次氯酸钠储罐专业选购指南

2025年储罐厂家权威推荐榜:钢衬塑储罐/钢塑复合储罐/化工储罐/防腐储罐/PE储罐/盐酸储罐/硫酸储罐/聚丙烯储罐/不锈钢储罐/次氯酸钠储罐专业选购指南 在化工、制药、环保等工业领域,储罐作为关键设备,其性能和质量直…

Avalonia使用代码更改滑动条的颜色

由于使用Style更改滑动条样式没生效,遂通过c#代码通过逻辑树获取元素的方式来进行样式修改,以此博客记录。注意点就是目标元素的生成和渲染时间。 AttachedToVisualTree事件在控件​​被添加到视觉树时触发​​,然而…

【SPIE出版】第四届云计算、性能计算与深度学习国际学术会议 (CCPCDL 2025)

CCPCDL 已成功召开三届,第四届会议将继续深耕云计算、性能计算、深度学习等前沿研究领域,助力促进全球范围内的科学创新。【CCPCDL 2025已成功通过 SPIE 出版!ISSN: 0277-786X!】 【往届均由SPIE出版,已见刊检索,…

【IC原厂】VKD104CB 内建稳压电路低电流4路触摸检测IC

VKD104CB是4通道触摸检测芯片,功耗低、工作电压范围宽以及稳定的触摸检测效果可以广泛的满足不同应用的需求,此触摸检测芯片是专为取代传统按键而设计,内建稳压电路,提供稳定电压给触摸检测电路使用,触摸检测PAD的大小…

实用指南:LTU-AS:一种具备音频感知、识别、理解的大模型架构

实用指南:LTU-AS:一种具备音频感知、识别、理解的大模型架构pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Con…

上班摸鱼新姿势!抖音爆火的线稿涂鸦也太治愈了~

最近上班摸鱼圈又有新玩法了—— 不是看剧、不是小游戏,而是刷爆抖音的 【线稿涂鸦图】! 简单几笔,就能让人放空大脑、重启心情,堪称打工人精神续命神器 😂GitHub地址 点击这里🖊 什么是“线稿涂鸦”? 就是一…

Ubuntu材料权限管理指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

n8n错误处理全攻略:构建稳定可靠的自动化工作流

关注 霍格沃兹测试学院公众号,回复「资料」, 领取人工智能测试开发技术合集 在自动化工作流中,错误不是绊脚石,而是构建更健壮系统的指引。掌握n8n错误处理,让您的自动化流程真正具备生产可靠性。 在自动化工作流中…

深入解析:HarmonyOS 应用开发深度解析:ArkTS 状态管理与渲染控制的艺术

深入解析:HarmonyOS 应用开发深度解析:ArkTS 状态管理与渲染控制的艺术pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family:…

【ACM出版】2025年计算机技术、数字媒体与传播国际学术会议(ICCDC 2025)

由西南财经大学天府学院主办的ICCDC 2025将于2025年10月31日至11月2日在成都召开。【ACM出版、IEEEfellow加盟、稳定EI检索】 【西南财经大学天府学院、成都师范学院主办 | 计算机类、数字媒体传播类主题皆可投稿】 20…

版本号搞得鬼!Winsows VSCode 和 Trae 的 Terminal 不识别 conda 环境

问题简述 在 Win 11 系统自带的终端(Powershell)和CMD窗口中,可以正常调用conda,命令行回显: (base) PS C:\Users\DELL>然而,在 VSCode 和 Trae 上无法正确使用 conda 报错为: PS C:\Users\DELL> conda act…

2025年氧化镁厂家最新权威推荐榜:活性氧化镁,肥料级氧化镁,高纯度氧化镁源头厂家深度解析及选购指南

2025年氧化镁厂家最新权威推荐榜:活性氧化镁,肥料级氧化镁,高纯度氧化镁源头厂家深度解析及选购指南 一、行业背景与发展现状 氧化镁作为一种重要的无机化工原料,在工业生产中扮演着不可或缺的角色。随着环保政策的…