当前位置: 首页 > news >正文

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

微信小程序开发进阶


一、自定义标签栏(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.jsqmd.com/news/17622/

相关文章:

  • Android studio build报错 - show
  • 2025 彩石瓦厂家最新推荐排行榜:权威解析金属瓦 / 屋顶瓦优质厂商,金属/屋顶/凉亭/昆明/云南彩石瓦厂家推荐
  • 2025 年最新干燥剂厂家推荐排行榜:深度剖析各品牌实力,涵盖氯化钙 / 氯化镁 / 硅胶等多类型干燥剂优选指南
  • 2025年螺杆泵厂家权威推荐榜:单干污泥料斗/浆料进料/高压耐磨/石油工业化工环保食品级船舶造纸加药计量/耐腐蚀高粘度污水污泥不锈钢铸铁304316全系解析
  • 2025 年工业 pH 计厂家最新推荐榜单:在线 / 污水 / 脱硫 / 发酵 / 化工等场景适用,国内优质厂家实力排行
  • 文明元代码:价值原语、共识具身与关系语法
  • 2025年扒胎机厂家推荐排行榜,液压无损扒胎机,全自动扒胎机,汽保扒胎机,轮胎扒胎机,汽车扒胎机,大轮胎扒胎机,无损扒胎机,辽南扒胎机,小车扒胎机,立式扒胎机公司推荐
  • springboot集成echarts显示图表
  • 2025年储罐厂家权威推荐榜:钢衬塑储罐/钢塑复合储罐/化工储罐/防腐储罐/PE储罐/盐酸储罐/硫酸储罐/聚丙烯储罐/不锈钢储罐/次氯酸钠储罐专业选购指南
  • Avalonia使用代码更改滑动条的颜色
  • 【SPIE出版】第四届云计算、性能计算与深度学习国际学术会议 (CCPCDL 2025)
  • 【IC原厂】VKD104CB 内建稳压电路低电流4路触摸检测IC
  • 实用指南:LTU-AS:一种具备音频感知、识别、理解的大模型架构
  • 上班摸鱼新姿势!抖音爆火的线稿涂鸦也太治愈了~
  • Ubuntu材料权限管理指南
  • n8n错误处理全攻略:构建稳定可靠的自动化工作流
  • 深入解析:HarmonyOS 应用开发深度解析:ArkTS 状态管理与渲染控制的艺术
  • 【ACM出版】2025年计算机技术、数字媒体与传播国际学术会议(ICCDC 2025)
  • 版本号搞得鬼!Winsows VSCode 和 Trae 的 Terminal 不识别 conda 环境
  • 2025年氧化镁厂家最新权威推荐榜:活性氧化镁,肥料级氧化镁,高纯度氧化镁源头厂家深度解析及选购指南
  • 客户端使用ceph服务器的块设备
  • [随笔11] 最近的心情 - 枝-致
  • 2025年智能照明系统/模块厂家推荐排行榜,工厂/车间/改建/高亮/高光效/泛光/免维护/投光/大功率智能照明系统及模块公司精选
  • DxO Nik Collection 8.0:7 款专业摄影插件套装,一站式图像后期解决方案
  • 启动JAVA
  • 2025年通风天窗厂家最新权威推荐榜:通风天窗,排烟天窗,通风气楼,屋顶通风器,顺坡气楼,10A通风天窗,1型通风天窗,TC5A通风天窗,TC12B通风天窗,屋脊通风天窗专业制造与高效通风解决方案
  • 三款AI平台部署实战体验:Dify、扣子与BuildingAI深度对比
  • #OO之接口-DAO模式代码阅读及应用
  • 2025年南通宠物医院权威推荐榜:专业诊疗与暖心服务口碑之选,精选优质宠物医疗机构
  • PPO GRPO GSPO DAPO的Loss计算与代码实现