uin-app微信小程序自定義tabBar底部菜單實現簡單示例(工作筆記)

在微信小程序中實現自定義 tabBar 可以為你的應用提供更加靈活和個性化的底部導航菜單。由于微信小程序的官方 tabBar 配置功能有限,自定義 tabBar 成為了很多開發者實現復雜底部導航的選擇。以下是一個簡單的示例,說明如何在小程序中實現自定義 tabBar

步驟 1: 配置 app.json

首先,你需要在 app.json 中配置 tabBar 的基礎信息,但 custom 字段需要設置為 true 來啟用自定義 tabBar

{"pages": ["pages/index/index","pages/logs/logs","pages/profile/profile"],"window": {"backgroundTextStyle": "light","navigationBarBackgroundColor": "#fff","navigationBarTitleText": "WeChat","navigationBarTextStyle": "black"},"tabBar": {"list": [{"pagePath": "pages/index/index","text": "首頁"},{"pagePath": "pages/logs/logs","text": "日志"},{"pagePath": "pages/profile/profile","text": "我的"}],"custom": true,"color": "#7A7E83","selectedColor": "#3cc51f","borderStyle": "black"}
}

步驟 2: 創建自定義 tabBar 組件

在項目的根目錄下創建一個名為 custom-tab-bar 的文件夾,并在其中創建所需的文件(如 index.jsindex.jsonindex.wxmlindex.wxss)。

index.js

這里可以處理邏輯,比如根據當前頁面切換 tab。

Component({data: {selected: 0,list: [{pagePath: '/pages/index/index',text: '首頁'}, {pagePath: '/pages/logs/logs',text: '日志'}, {pagePath: '/pages/profile/profile',text: '我的'}]},methods: {switchTab: function(e) {const data = e.currentTarget.dataset;if (this.data.selected === data.index) return;wx.switchTab({url: data.path});},onShow: function(e) {// 當 tabBar 顯示時觸發,可以根據需要獲取當前頁面路徑const { path } = getCurrentPages().pop();this.setData({selected: this.data.list.findIndex(tab => tab.pagePath === path)});}}
});
index.json

定義組件的配置信息。

{"usingComponents": {}
}
index.wxml

定義 tabBar 的結構。

<view class="tab-bar"><block wx:for="{{list}}" wx:key="index" wx:for-index="idx"><view class="tab-item {{selected === idx ? 'active' : ''}}" data-path="{{item.pagePath}}" data-index="{{idx}}" bindtap="switchTab">{{item.text}}</view></block>
</view>
index.wxss

添加樣式。

.tab-bar {display: flex;justify-content: space-around;background-color: #fff;position: fixed;bottom: 0;left: 0;right: 0;height: 50px;
}.tab-item {padding: 10px 0;text-align: center;
}.tab-item.active {color: #3cc51f;
}

步驟 3: 在 app.js 中使用自定義 tabBar

app.js 中引入并使用自定義的 tabBar 組件。

App({onLaunch: function () {// 在這里可以執行一些啟動時的邏輯},usingComponents: {'不同角色,控制查看底部菜單權限實現效果1:實體店![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/2ca6098eefaf4d55935d9eb8d44116fb.png)
實現效果2:回收公司
![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/da1d7b225c064d3ab058176211f65833.png)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/43926.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43926.shtml
英文地址,請注明出處:http://en.pswp.cn/web/43926.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux下常見壓縮文件tar.xz、tar.bz2、tar.gz的區別和詳解

文章目錄 tar.xz tar.bz2 tar.gz 的區別三種文件的解壓方式tar.xz的解壓三種壓縮文件的創建方式 tar.xz tar.bz2 tar.gz 的區別 這三個文件擴展名都表示壓縮后的檔案文件&#xff0c;但它們使用不同的壓縮算法。 tar.xz: tar 代表 Tape Archive&#xff0c;它是一種將多個文件…

House holder reflections and Givens rotations

House holder reflections and Givens rotations Householder反射和Givens旋轉是兩種常見的線性代數方法&#xff0c;用于將一個矩陣分解為正交矩陣(Q)和上三角矩陣&#xff0c;即QR分解。它們在數值線性代數中非常重要&#xff0c;特別是在求解線性方程組和特征值問題中。以下…

【若依管理系統】注意事項

1.前端字段必填 rules: {sceneName: [{ required: true, message: "場景名稱不能為空", trigger: "blur" }],orderNum: [{ required: true, message: "顯示排序不能為空", trigger: "blur" }], }, 2.IDEA&#xff0c;默認以debug模式…

python | pyvips,一個神奇的 Python 庫

本文來源公眾號“python”&#xff0c;僅用于學術分享&#xff0c;侵權刪&#xff0c;干貨滿滿。 原文鏈接&#xff1a;pyvips&#xff0c;一個神奇的 Python 庫&#xff01; 大家好&#xff0c;今天為大家分享一個神奇的 Python 庫 - pyvips。 Github地址&#xff1a;https…

Agents 要點

一、Agents概念 人類是這個星球上最強大的 Agent。Agent是一個能感知并自主地采取行動的實體&#xff0c;這里的自主性極其關鍵&#xff0c;Agent要能夠實現設定的目標&#xff0c;其中包括具備學習和獲取知識的能力以提高自身性能。 關鍵點&#xff1a;感知環境、自主決策、具…

前端項目筆記經驗-001

做項目有一段時間了&#xff0c;利用下班或者零碎時間的功夫&#xff0c;想分享一些個人心得和感受。與君共勉。 前端應該具備的幾個能力&#xff1a; &#xff08;1&#xff09;準備假數據&#xff08;模擬數據&#xff09;的能力&#xff0c;因為后端有時候接口沒有準備好&…

element plus 實現跨頁面+跨tab欄多選

文章目錄 element plus 層面數據層面 菜鳥好久沒寫博客了&#xff0c;主要是沒遇見什么很難的問題&#xff0c;今天碰見了一個沒有思路的問題&#xff0c;解決后立馬來和大家伙分享了&#xff01; 菜鳥今天要實現一個需求&#xff0c;就是&#xff1a;實現跨頁面跨 tab欄 多選…

力學篤行(四)Qt 線程與信號槽

線程與信號槽 1. 主窗口&#xff08;MainWindow&#xff09;主線程2. 線程2.1 QThread2.2 QtConcurrent::run()2.3 thread 的調用方式 3. 信號槽3.1 connect3.2 元對象系統中注冊自定義數據類型 附錄一 信號槽機制與主線程進行通信示例 1. 主窗口&#xff08;MainWindow&#x…

MySQL聯合索引最左匹配原則

MySQL中的聯合索引(也叫組合索引)遵循最左匹配原則&#xff0c;即在創建聯合索引時&#xff0c;查詢條件必須從索引的最左邊開始&#xff0c;否則索引不會被使用。在聯合索引的情況下&#xff0c;數據是按照索引第一列排序&#xff0c;第一列數據相同時才會按照第二列排序。 例…

CVE-2024-27292:Docassemble任意文件讀取漏洞復現 [附POC]

文章目錄 CVE-2024-27292&#xff1a;Docassemble任意文件讀取漏洞復現 [附POC]0x01 前言0x02 漏洞描述0x03 影響版本0x04 漏洞環境0x05 漏洞復現1.訪問漏洞環境2.構造POC3.復現 0x06 修復建議 CVE-2024-27292&#xff1a;Docassemble任意文件讀取漏洞復現 [附POC] 0x01 前言 …

冒泡排序與其C語言通用連續類型排序代碼

冒泡排序與其C語言通用連續類型排序代碼 冒泡排序冒泡排序為交換排序的一種&#xff1a;動圖展示&#xff1a;冒泡排序的特性總結&#xff1a;冒泡排序排整型數據參考代碼&#xff08;VS2022C語言環境&#xff09;&#xff1a; 冒泡排序C語言通用連續類型排序代碼對比較的方式更…

法律行業守護神:知識庫+AI大模型,解鎖企業知識全周期管理

在法律行業中&#xff0c;搭建一個有效的知識庫并進行企業知識全生命周期管理確實是一項不小的挑戰。法律環境的復雜性和不斷變化的法規要求企業必須持續更新和維護其知識庫&#xff0c;以確保所有信息的準確性和實時性。 這種系統化的信息管理不僅有助于提高律師和法律顧問的…

打卡第9天-----字符串

我在自學的時候,看了卡爾的算法公開課了,有些題目我就照葫蘆畫瓢寫了一遍js代碼,差不多都寫出來了,有暴力解法,有卡爾推薦的思路和方法。話不多說,直接上題上代碼吧: 一、翻轉字符串里的單詞 leetcode題目鏈接:151. 反轉字符串中的單詞 題目描述: 給你一個字符串 s…

5個自動化面試題,助你過關斬將!

面試時&#xff0c;自動化是軟件測試高頻面試內容&#xff0c;通過學習和準備面試題&#xff0c;你會對可能遇到的問題有所準備&#xff0c;從而減輕面試時的緊張感&#xff0c;讓你在面試中穩操勝券&#xff01; 今天&#xff0c;分享一些在面試中可能會遇到的自動化測試面試…

軟件架構之測評方法

軟件架構之測評方法 第 11 章&#xff1a;測試評審方法11.1 測試方法11.1.1 軟件測試階段11.1.2 白盒測試和黑盒測試11.1.3 缺陷的分類和級別11.1.4 調試 11.2 評審方法11.3 驗證與確認11.4 測試自動化11.5 面向對象的測試 第 11 章&#xff1a;測試評審方法 軟件測試與評審是…

大學生暑假“三下鄉”社會實踐工作新聞投稿指南請查收!

近年來&#xff0c;大學生暑期“三下鄉”社會實踐工作方興未艾&#xff0c;越來越多的大學生通過參與“三下鄉”實踐工作&#xff0c;走出校園&#xff0c;深入基層&#xff0c;體驗農村生活&#xff0c;服務農民&#xff0c;促進農村經濟社會發展&#xff0c;實現了理論與實踐…

算能科技,致力于成為全球領先的通用算力供應商

算能致力于成為全球領先的定制算力提供商&#xff0c;專注于RISC-V、TPU處理器等算力產品的研發和推廣應用。公司遵循全面開源開放的生態理念&#xff0c;攜手行業伙伴推動RISC-V高性能通用計算產業落地&#xff1b;打造覆蓋“云、邊、端”的全場景產品矩陣&#xff0c;為數據中…

【eNSP模擬實驗】三層交換機實現VLAN通信

實驗需求 讓PC1和PC2能夠互相通訊&#xff0c;其中PC1在vlan10中&#xff0c;PC2在vlan20中。 實驗操作 首先把PC1和PC2都配置好ip&#xff0c;配置好之后&#xff0c;點擊右下角的應用 然后&#xff0c;在S2交換機&#xff08;S3700&#xff09;上做如下配置 #進入系統 <…

mvvm模式

MVVM&#xff08;Model-View-ViewModel&#xff09;模式是一種軟件設計模式&#xff0c;特別適用于構建用戶界面&#xff08;UI&#xff09;應用程序&#xff0c;尤其是使用WPF&#xff08;Windows Presentation Foundation&#xff09;、Silverlight和其他XAML技術的應用程序。…

【Redis】Redis十大類型

文章目錄 前言一、string字符串類型二、List列表類型三、 Hash表四、 Set集合五、 ZSet有序集合六、 GEO地理空間七、 HyperLogLog基數統計八、Bitmap位圖九、bitfield位域十、 Stream流10.1 隊列指令10.2 消費組指令10.3 ACK機制 前言 redis是k-v鍵值對進行存儲&#xff0c;k…