我的页面
引言
本文将详细解析如何实现一个包含登录注册、多个功能模块跳转以及特定功能展示的“我的”页面。我们将使用 Vant Weapp 组件库来简化开发过程,并确保代码的高级性和条理性。
1. 项目结构
首先,确保你的项目结构如下所示:
- pages/- mine/- mine.js- mine.wxml- mine.wxss
- app.json
2. app.json 配置
在 app.json
中引入 Vant Weapp 组件,确保组件库正确加载:
{"van-cell": "@vant/weapp/cell/index","van-cell-group": "@vant/weapp/cell-group/index"
}
3. mine.js
3.1 代码写作思路
在 mine.js
中,我们定义了三个主要方法:goIndex
、goHome
和 goAA
,分别用于跳转到普通页面、tabBar 页面和带参数的页面。这些方法通过小程序>微信小程序的 API 实现页面跳转。
3.2 介绍方法
-
goIndex:跳转到普通页面
index
。 -
goHome:跳转到 tabBar 页面
home
。 -
goAA:带参数跳转到页面
AA
,参数通过event.currentTarget.dataset.a
获取,并拼接到 URL 中。
// pages/mine/mine.js
Page({// 1. 跳转到普通页面goIndex() {wx.navigateTo({url: '../index/index',});},// 2. 跳转到tabBar页面goHome() {wx.switchTab({url: '../home/home',});},// 3. 跳转页面 带参数goAA(event) {// 获取自定义属性a的值let a = event.currentTarget.dataset.a;console.log("event", a);wx.navigateTo({// 带参数的url怎么写?// 路径?参数名=值url: '../AA/AA?aa=' + a,});}
});
4. mine.wxml
4.1 代码写作思路
在 mine.wxml
中,我们使用 Vant Weapp 的 van-cell
组件和小程序>微信小程序的 navigator
组件来构建页面。van-cell
组件用于创建列表单元,navigator
组件用于创建功能模块的跳转入口。
4.2 介绍方法
-
登录注册:使用
van-cell
组件创建登录注册入口,点击时调用goIndex
方法。 -
功能模块:使用
navigator
组件创建多个功能模块的跳转入口,每个navigator
包含一个图标和文本。 -
特定功能:使用
van-cell
组件创建特定功能的展示,点击时调用goHome
或goAA
方法。
<!-- pages/mine/mine.wxml -->
<view class="mine"><!-- 登录页面开始 --><van-cell class="login" title="点击登录/注册" bind:click="goIndex" is-link><image slot="icon" src="/image/user.png" class="custom-icon" mode="aspectFit" referrerPolicy="no-referrer" /></van-cell><!-- 登陆页面结束 --><!-- 小页面跳转开始 --><view class="container"><!-- 第一行 --><view class="row"><navigator url="/pages/bookshelf/bookshelf" class="item"><image class="icon" src="/image/bookshelf-icon.png" /><text class="text">书架</text></navigator><navigator url="/pages/dailyupdate/dailyupdate" class="item"><image class="icon" src="/image/dailyupdate-icon.png" /><text class="text">每日更新</text></navigator><navigator url="/pages/readinghistory/readinghistory" class="item"><image class="icon" src="/image/readinghistory-icon.png" /><text class="text">浏览历史</text></navigator></view><!-- 第二行 --><view class="row"><navigator url="/pages/favorites/favorites" class="item"><image class="icon" src="/image/favorites-icon.png" /><text class="text">点赞的漫画</text></navigator><navigator url="/pages/downloads/downloads" class="item"><image class="icon" src="/image/downloads-icon.png" /><text class="text">我的下载</text></navigator><navigator url="/pages/messages/messages" class="item"><image class="icon" src="/image/messages-icon.png" /><text class="text">我的消息</text></navigator></view><!-- 第三行 --><view class="row"><navigator url="/pages/author/author" class="item"><image class="icon" src="/image/author-icon.png" /><text class="text">成为作家</text></navigator><navigator url="/pages/merchandise/merchandise" class="item"><image class="icon" src="/image/merchandise-icon.png" /><text class="text">周边商城</text></navigator><navigator url="/pages/wallet/wallet" class="item"><image class="icon" src="/image/wallet-icon.png" /><text class="text">我的钱包</text></navigator></view><!-- 第四行 --><view class="row"><navigator url="/pages/feedback/feedback" class="item"><image class="icon" src="/image/feedback-icon.png" /><text class="text">反馈与帮助</text></navigator><navigator url="/pages/productculture/productculture" class="item"><image class="icon" src="/image/productculture-icon.png" /><text class="text">KC指南</text></navigator><!-- 空白占位 --><navigator class="item"><image class="icon" /><text class="text"></text></navigator></view></view><!-- 小页面跳转结束 --><!-- cell实现开始 --><van-cell title="免流服务"><text slot="right-icon" class="right-icon-text">流量免费任性看漫画</text></van-cell><van-cell title="0元抽奖"><text slot="right-icon" class="right-icon-text">K币会员等你来抽</text></van-cell><van-cell title="青少年模式"><text slot="right-icon" class="right-icon-text">未开启</text></van-cell><van-cell title="设置" is-link /><!-- cell实现结束 --><van-cell title="去Home" bind:click="goHome" is-link /><van-cell title="去AA" bind:click="goAA" data-a="123" is-link />
</view>
5. mine.wxss
5.1 代码写作思路
在 mine.wxss
中,我们定义了页面的样式,确保布局和视觉效果符合设计要求。通过灵活使用 Flexbox 布局,我们实现了响应式设计,确保页面在不同设备上都能良好显示。
5.2 介绍方法
-
.mine:设置页面的外层容器。
-
.custom-icon:设置登录注册图标。
-
.van-cell:设置列表单元的样式。
-
.container:设置功能模块的容器。
-
.row:设置每行的功能模块。
-
.item:设置每个功能模块的样式。
-
.icon:设置功能模块的图标。
-
.text:设置功能模块的文本。
-
.right-icon-text:设置
van-cell
右侧文本的样式。
/* pages/mine/mine.wxss */
.mine {padding: 0rpx;
}.custom-icon {width: 80px;height: 100px;
}.van-cell {display: flex;align-items: center;
}.container {display: flex;flex-direction: column;align-items: center;padding: 20rpx;
}.row {display: flex;flex-direction: row;justify-content: space-between;width: 100%;
}.item {display: flex;flex-direction: column;align-items: center;justify-content: center;margin: 30rpx;/* 每个 item 占据 30% 的宽度 */width: 30%;
}.icon {width: 70rpx;height: 70rpx;margin-bottom: 10rpx;
}.text {/* 设置字体大小 */font-size: 10px;/* 设置文本对齐方式 */text-align: center;/* 设置行高 */line-height: 24px;
}.right-icon-text {/* 设置字体大小 */font-size: 10px;/* 浅灰色 */color: #c0c0c0;
}
6. 页面展示
6.1 登录注册
点击“点击登录/注册”会跳转到 index
页面。
6.2 功能模块
包含书架、每日更新、浏览历史、点赞的漫画、我的下载、我的消息、成为作家、周边商城、我的钱包、反馈与帮助、KC指南等模块,点击会跳转到相应的页面。
6.3 特定功能
包含免流服务、0元抽奖、青少年模式、设置等,点击“去Home”会跳转到 home
页面,点击“去AA”会带参数跳转到 AA
页面。
7. 总结
通过上述步骤,我们成功实现了一个功能丰富且用户友好的“我的”页面。使用 Vant Weapp 组件库可以大大简化开发过程,提高开发效率。组件化的设计不仅提高了代码的复用性和可维护性,还使得页面结构更加清晰。希望本文能对你有所帮助,如果你有任何问题或建议,欢迎留言交流。
8. 代码仓库
你可以在 GitHub 找到完整的项目代码,欢迎 Star 和 Fork。
完整代码
app.json
"van-cell": "@vant/weapp/cell/index","van-cell-group": "@vant/weapp/cell-group/index"
mine.js
// pages/mine/mine.js
Page({// 1. 跳转到普通页面goIndex() {wx.navigateTo({url: '../index/index',});},// 2. 跳转到tabBar页面goHome() {wx.switchTab({url: '../home/home',});},// 3. 跳转页面 带参数goAA(event) {// 获取自定义属性a的值let a = event.currentTarget.dataset.a;console.log("event", a);wx.navigateTo({// 带参数的url怎么写?// 路径?参数名=值url: '../AA/AA?aa=' + a,});}
});
mine.wxml
<!-- pages/mine/mine.wxml -->
<view class="mine"><!-- 登录页面开始 --><van-cell class="login" title="点击登录/注册" bind:click="goIndex" is-link><image slot="icon" src="/image/user.png" class="custom-icon" mode="aspectFit" referrerPolicy="no-referrer" /></van-cell><!-- 登陆页面结束 --><!-- 小页面跳转开始 --><view class="container"><!-- 第一行 --><view class="row"><navigator url="/pages/bookshelf/bookshelf" class="item"><image class="icon" src="/image/bookshelf-icon.png" /><text class="text">书架</text></navigator><navigator url="/pages/dailyupdate/dailyupdate" class="item"><image class="icon" src="/image/dailyupdate-icon.png" /><text class="text">每日更新</text></navigator><navigator url="/pages/readinghistory/readinghistory" class="item"><image class="icon" src="/image/readinghistory-icon.png" /><text class="text">浏览历史</text></navigator></view><!-- 第二行 --><view class="row"><navigator url="/pages/favorites/favorites" class="item"><image class="icon" src="/image/favorites-icon.png" /><text class="text">点赞的漫画</text></navigator><navigator url="/pages/downloads/downloads" class="item"><image class="icon" src="/image/downloads-icon.png" /><text class="text">我的下载</text></navigator><navigator url="/pages/messages/messages" class="item"><image class="icon" src="/image/messages-icon.png" /><text class="text">我的消息</text></navigator></view><!-- 第三行 --><view class="row"><navigator url="/pages/author/author" class="item"><image class="icon" src="/image/author-icon.png" /><text class="text">成为作家</text></navigator><navigator url="/pages/merchandise/merchandise" class="item"><image class="icon" src="/image/merchandise-icon.png" /><text class="text">周边商城</text></navigator><navigator url="/pages/wallet/wallet" class="item"><image class="icon" src="/image/wallet-icon.png" /><text class="text">我的钱包</text></navigator></view><!-- 第四行 --><view class="row"><navigator url="/pages/feedback/feedback" class="item"><image class="icon" src="/image/feedback-icon.png" /><text class="text">反馈与帮助</text></navigator><navigator url="/pages/productculture/productculture" class="item"><image class="icon" src="/image/productculture-icon.png" /><text class="text">KC指南</text></navigator><!-- 空白占位 --><navigator class="item"><image class="icon" /><text class="text"></text></navigator></view></view><!-- 小页面跳转结束 --><!-- cell实现开始 --><van-cell title="免流服务"><text slot="right-icon" class="right-icon-text">流量免费任性看漫画</text></van-cell><van-cell title="0元抽奖"><text slot="right-icon" class="right-icon-text">K币会员等你来抽</text></van-cell><van-cell title="青少年模式"><text slot="right-icon" class="right-icon-text">未开启</text></van-cell><van-cell title="设置" is-link /><!-- cell实现结束 --><van-cell title="去Home" bind:click="goHome" is-link /><van-cell title="去AA" bind:click="goAA" is-link />
</view>
mine.wxss
/* pages/mine/mine.wxss */
.mine {padding: 0rpx;
}.custom-icon {width: 80px;height: 100px;
}.van-cell {display: flex;align-items: center;
}.container {display: flex;flex-direction: column;align-items: center;padding: 20rpx;
}.row {display: flex;flex-direction: row;justify-content: space-between;width: 100%;
}.item {display: flex;flex-direction: column;align-items: center;justify-content: center;margin: 30rpx;/* 每个 item 占据 30% 的宽度 */width: 30%;
}.icon {width: 70rpx;height: 70rpx;margin-bottom: 10rpx;
}.text {/* 设置字体大小 */font-size: 10px;/* 设置文本对齐方式 */text-align: center;/* 设置行高 */line-height: 24px;
}.right-icon-text {/* 设置字体大小 */font-size: 10px;/* 浅灰色 */color: #c0c0c0;
}
页面展示
包含登录注册、多个功能模块跳转以及特定功能展示的“我的”页面