微信小程序tabBar組件切換與下拉刷新實(shí)現(xiàn)詳解
前言
基本上,所有的小程序,頁面底部都有個(gè)tab,來實(shí)現(xiàn)頁面的切換,效果如下
一、tabBar切換
1.為什么使用tabBar
在 pages.json 中提供 tabBar 配置,不僅僅是為了方便快速開發(fā)導(dǎo)航,更重要的是在App和小程序端提升性能。在這兩個(gè)平臺(tái),底層原生引擎在啟動(dòng)時(shí)無需等待js引擎初始化,即可直接讀取 pages.json 中配置的 tabBar 信息,渲染原生tab。
2.注意事項(xiàng)
- 當(dāng)設(shè)置 position 為 top 時(shí),將不會(huì)顯示 icon
- tabBar 中的 list 是一個(gè)數(shù)組,只能配置最少2個(gè)、最多5個(gè) tab,tab 按數(shù)組的順序排序。
- tabbar 切換第一次加載時(shí)可能渲染不及時(shí),可以在每個(gè)tabbar頁面的onLoad生命周期里先彈出一個(gè)等待雪花(hello uni-app使用了此方式)
- tabbar 的頁面展現(xiàn)過一次后就保留在內(nèi)存中,再次切換 tabbar 頁面,只會(huì)觸發(fā)每個(gè)頁面的onShow,不會(huì)再觸發(fā)onLoad。
- 頂部的 tabbar 目前僅微信小程序上支持。需要用到頂部選項(xiàng)卡的話,建議不使用 tabbar 的頂部設(shè)置,而是自己做頂部選項(xiàng)卡,可參考 hello uni-app->模板->頂部選項(xiàng)卡。
3.如何使用
tabBar是全局文件,需要在 pages.json配置
根據(jù)自己的要求來配對(duì),我這里是有四個(gè)頁面,分別是【首頁、分類、購物車、我的】
這里的四個(gè)頁面都是在pages中創(chuàng)建的,是主要的四個(gè)功能頁面,需要在pages.json注冊(cè)(如果使用的HBuilder X 在創(chuàng)建文件夾是,會(huì)提示是否在pages.json中注冊(cè),勾取一下就可以),展示一段注冊(cè)代碼,如下:
{ "path" : "pages/cart/cart", "style" : { "navigationBarTitleText": "", "enablePullDownRefresh": false, "navigationBarTitleText": "小余努力搬磚" } }
pagePath是寫頁面地址,這里的頁面地址推薦在pages中創(chuàng)建
iconPath是寫圖片地址,圖片放到static中尋找路徑即可,我們每次點(diǎn)擊切換后,為了更好的展示效果,圖片都會(huì)有點(diǎn)擊前點(diǎn)擊后的狀態(tài),這里的圖片是點(diǎn)擊前
selectedIconPath這里就是放點(diǎn)擊后的圖片,與點(diǎn)擊前有明顯的區(qū)別,就是為了表現(xiàn)出我們點(diǎn)擊到了,并且切換了
text自己起名字
其中還有許多屬性,可以通過自己對(duì)項(xiàng)目開發(fā)的要求進(jìn)行修改和優(yōu)化,修改官網(wǎng)的默認(rèn)樣式
我的配置源碼如下,如果需要完整代碼,私信留下qq郵箱
"tabBar": { "color": "#7A7E83", "selectedColor": "#3cc51f", "borderStyle": "black", "backgroundColor": "#ffffff", "list": [{ "pagePath": "pages/index/index", "iconPath": "static/tabbar/index.png", "selectedIconPath": "static/tabbar/indexSelected.png", "text": "首頁" }, { "pagePath": "pages/class/class", "iconPath": "static/tabbar/class.png", "selectedIconPath": "static/tabbar/classSelected.png", "text": "分類" },{ "pagePath": "pages/cart/cart", "iconPath": "static/tabbar/cart.png", "selectedIconPath": "static/tabbar/cartSelected.png", "text": "購物車" },{ "pagePath": "pages/my/my", "iconPath": "static/tabbar/my.png", "selectedIconPath": "static/tabbar/mySelected.png", "text": "我的" }] }
二、下拉刷新
下拉刷新非常的簡(jiǎn)單,只需要一行代碼就行,需要學(xué)會(huì)看官網(wǎng)的介紹,這單詞我是記不住
在 pages.json中的globalStyle加上"enablePullDownRefresh":true即可,默認(rèn)是關(guān)閉
"globalStyle": { "navigationBarTextStyle": "black", "navigationBarTitleText": "小余努力搬磚", "navigationBarBackgroundColor": "#F8F8F8", "backgroundColor": "#F8F8F8", "enablePullDownRefresh":true //此處就是控制下拉刷新 },
如果想要改名字,需要先將"navigationBarTitleText": "uni-app"注釋掉,再到globalStyle中的navigationBarTitleText改掉名字
還有很多樣式可以根據(jù)官網(wǎng)的注釋進(jìn)行修改,得到自己想要的樣子
到此這篇關(guān)于微信小程序tabBar組件切換與下拉刷新實(shí)現(xiàn)詳解的文章就介紹到這了,更多相關(guān)小程序tabBar內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JS中Generator函數(shù)與async函數(shù)用法介紹
javascript中經(jīng)常會(huì)用到異步編程,在ES6之后我們使用的?Generator函數(shù)、async函數(shù)、promise都是我們異步編程的一大助力,這里我們主要講解Generator、async函數(shù),并且簡(jiǎn)介他們之間的一些聯(lián)系,本篇文章會(huì)帶著一些簡(jiǎn)易案例,方便大家理解使用2023-06-06Jupyter Notebook運(yùn)行JavaScript的方法
Jupyter Notebook是一塊所見即所得的畫布,通過在瀏覽器上編輯代碼,讓開發(fā)人員實(shí)現(xiàn)展示與快速迭代的利器,本文主要介紹了Jupyter Notebook運(yùn)行JavaScript的方法,感興趣的可以了解一下2021-05-05js實(shí)現(xiàn)的真正的iframe高度自適應(yīng)(兼容IE,FF,Opera)
由于項(xiàng)目上的需要,要用一個(gè)iframe高度自適應(yīng)的功能,在google上搜了很久,找了一些修改了下。大家可以測(cè)試下。2010-03-03js實(shí)現(xiàn)無感刷新的實(shí)踐(附前后端實(shí)現(xiàn))
無感刷新機(jī)制的目的是在用戶不知情的情況下,自動(dòng)更新其認(rèn)證令牌本文,主要介紹了js實(shí)現(xiàn)無感刷新的實(shí)踐(附前后端實(shí)現(xiàn)),具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04uniapp自定義驗(yàn)證碼輸入框并隱藏光標(biāo)
這篇文章主要介紹了uniapp自定義驗(yàn)證碼輸入框隱藏光標(biāo),效果是點(diǎn)擊輸入框喚起鍵盤,藍(lán)框就相當(dāng)于input的光標(biāo),驗(yàn)證碼輸入錯(cuò)誤或者不符合格式要求會(huì)將字體以及邊框改成紅色提示持續(xù)1s然后清空數(shù)據(jù),恢復(fù)原邊框樣式,需要的朋友可以參考下2023-02-02JS實(shí)現(xiàn)FLASH幻燈片圖片切換效果的方法
這篇文章主要介紹了JS實(shí)現(xiàn)FLASH幻燈片圖片切換效果的方法,實(shí)例分析了javascript操作圖片實(shí)現(xiàn)Flash幻燈效果的技巧,需要的朋友可以參考下2015-03-03