導航:首頁 > 軟體知識 > 微信小程序跳轉到tab欄如何再返回

微信小程序跳轉到tab欄如何再返回

發布時間:2023-06-11 15:08:56

A. 微信小程序實現tab切換

微信小程序使用的是類似MVVM類型的框架,本質是數據驅動視圖,換句話來說就是邏輯層(javascript)去驅動界面層(view)的改變,功能實現核心主要在於操作數據。

下面來詳細講解,微信小程序如何實現tab切換功能,如下圖所示:

在wxml文件裡面,搭建結構。其中,tab盒子是tab整體,btns裡面的view是切換按鈕,cons裡面的view是切換的盒子內容。

把切換按鈕btns和內容cons渲染出來。在js文件裡面書寫數據,並且在wxml文件裡面通過wx:for進行列表渲染輸出。

通過彈性布局去書寫樣式。添加cur當前類名去控制當前按鈕的樣式和當前顯示的內容盒子。

注意微信小程序使用的是rpx可以自適應的單位,規定所有屏幕寬度為750rpx,在iPhone6設備屏幕寬度換算是2rpx=1px。

邏輯層添加了active數據控制當前顯示盒子。

wxml要書寫判斷驗證去控制盒子是否有cur類名。

上面表達式表示,如果當前項的索引值index等於數據active,則此項有cur這個類名,否則就沒有。注意cur類名是控制當前按鈕樣式和當前顯示內容盒子的。

有cur這個類名的按鈕會顯示當前的樣式,有cur這個類名的內容盒子是顯示的,但是否有這個類名是通過active這個數據決定的。所以最後我們只需要把active這個數據的值修改成用戶點擊按鈕的索引值即可實現tab切換功能。

首先要給按鈕btn自定義索引值等於循環當前項的index,微信小程序給組件自定義索引值是通過在組件身上添加data-index=」{{index}}」屬性,然後在js裡面即可通過事件對象裡面的e.currentTarget.dataset.index屬性獲取用戶點擊按鈕的索引值。

給按鈕自定義索引值和綁定事件,綁定點擊事件通過給按鈕組件添加屬性bindtap=「函數名」,此處設置函數名為toggle。

把active的值設置為用戶點擊按鈕的索引值,即可實現tab切換功能。

e.currentTarget.dataset.index獲取用戶點擊按鈕的索引值,微信小程序通過this.setData()去修改data裡面的數據內容。

B. 微信小程序頁面返回

返回頁面同時需要刷新數據

當我們頁面跳轉到三級頁面後,點擊左上角的返回按鈕,能夠直接返回到首頁

比如我們現在希望在第四級頁面返回首頁後刷新,我們需要在 onShow 方法中調用 onLoad() 方法

在 data 里定義屬性後,也可以獲取到上個頁面傳過來的值

比如:
從 A 頁面到 B 頁面帶的對象 a = {name: '小明', age: '18'}
從 C 頁面到 B 頁面帶的對象 c = {pname: '小紅', page: '17'}
像這樣對象內部的欄位名稱不一樣,B頁面在拿到該對象後無法解析

在全局中定義變數 e ,在 A 頁面中跳轉前設置

在全局中定義變數 e ,在 C 頁面中跳轉前設置

在 B 頁面 onLoad() 方法中取值

原文: https://blog.csdn.net/uniquehzx/article/details/86011843

C. 微信小程序頁面常用的5種跳轉方法

為了不讓用戶在使用小程序時造成困擾,微信小程序規定頁面路徑只能是 五層 ,所以需盡量避免多層級的交互方式。 而頁面跳轉則涉及到多個頁面層級。

保留當前頁面,跳轉到應用內的某個頁面,使用wx.navigateBack可以返回到原頁面。

需要跳轉的應用內非 tabBar 的頁面的路徑 , 路徑後可以帶參數。參數與路徑之間使用?分隔,參數鍵與參數值用=相連,不同參數用&分隔;

如 'path?key=value&key2=value2'

eg:

wx.navigateTo({

    url:'test?id=1'

})

這種跳轉方式默認有返回按鈕,返回到上一個頁面

關閉當前頁面,跳轉到應用內的某個頁面。

需要跳轉的應用內非 tabBar 的頁面的路徑,路徑後可以帶參數。參數與路徑之間使用?分隔,參數鍵與參數值用=相連,不同參數用&分隔;

如 'path?key=value&key2=value2'

eg:

wx.redirectTo({

    url:'test?id=1'

})

這種跳轉方式默認有返回按鈕,返回到上一個頁面的再上一層

需要跳轉的應用內頁面路徑 , 路徑後可以帶參數。參數與路徑之間使用?分隔,參數鍵與參數值用=相連,不同參數用&分隔;

如 'path?key=value&key2=value2',如果跳轉的頁面路徑是 tabBar 頁面則不能帶參數

eg:

wx.reLaunch({

    url:'test?id=1'

})

這種跳轉方式默認沒有返回按鈕,不需要默認返回按鈕的頁面就可以使用這個api了

需要跳轉的 tabBar 頁面的路徑(需在 app.json 的  tabBar  欄位定義的頁面),路徑後不能帶參數

{

    "tabBar": {

        "list": [{

            "pagePath":"index",

            "text":"首頁"

        },{

            "pagePath":"other",

            "text":"其他"

        }]

    }

}

wx.switchTab({

url:'/index'

})

我們需要調轉到tabbar定義的頁面的時候,就需要這個api了。踩過這個坑的人就知道,除了這個api,其他的都不能跳轉到tabar定義過的頁面

關閉當前頁面,返回上一頁面或多級頁面。可通過 getCurrentPages()) 獲取當前的頁面棧,決定需要返回幾層。

D. 微信小程序---tabBar&頁面跳轉

1、tabBar

在app.json文件中添加tabBar節點。tabBar是小程序客戶端底部或頂部tab欄的實現。

(1)tabBar相關屬性

color:tab上的文字默認顏色,僅支持十六進制顏色。

selectedColor:tab上的文字選中時的顏色,僅支持十六進制顏色。

backgroundColor:tab的背景色,僅支持十六進制顏色。

borderStyle:tabbar上邊框的顏色, 僅支持 black / white。

position:tabBar的位置,默認值是: bottom,僅支持 bottom / top。當 position 為 top 時,不顯示 icon。

custom:自定義tabBar。

"tabBar": {

    "color": "#000000",

    "selectedColor": "#336699",

    "backgroundColor": "#ffffff",

    "borderStyle": "black",

    "position": "bottom"

  }

(2)list

list:tab的列表。

list 接受一個數組,只能配置最少 2 個、最多 5 個 tab。

pagePath:頁面路徑,必須在pages 中先定義。

text:tab 上按鈕文字。

iconPath:圖片路徑,icon 大小限制為 40kb,建議尺寸為 81px * 81px,不支持網路圖片。selectedIconPath:選中時的圖片路徑,icon 大小限制為 40kb,建議尺寸為 81px * 81px,不支持網路圖片。

    "list": [

      {

        "text": "首頁",

        "pagePath": "pages/index/index",

        "iconPath": "assets/icon/home.png",

        "selectedIconPath": "assets/icon/home2.png"

      },

      {

        "text": "列表",

        "pagePath": "pages/list/list",

        "iconPath": "assets/icon/list.png",

        "selectedIconPath": "assets/icon/list2.png"

      }

]

2、頁面跳轉

(1)跳轉普通頁面

方法① navigator組件

 <!-- 跳轉到普通頁,可以通過返回按鈕返回 -->

 <navigator url="../detail/detail">到詳情頁</navigator>

方法② navigateTo()方法

navigateTo()方法,用於跳轉普通頁面。

<view bindtap="gotoDetail">到詳情頁</view>

gotoDetail(){

    //使用全局api跳轉,navigateTo()方法,用於跳轉普通頁面

    wx.navigateTo({

      url: '../detail/detail',

    })

   }

(2)跳轉tabBar頁面

方法① navigator組件

如果要使用navigator組件跳轉tabBar頁面,需要設置open-type="switchTab"。

 <!-- 跳轉到tabBar頁面,不可以通過返回按鈕返回。因為跳轉到指定的tabBar頁面後,會關閉其他所有頁面 -->

<navigator url="../list/list" open-type="switchTab">到列表頁</navigator>                                                                                      

方法② switchTab()方法

switchTab()方法,用於跳轉tabBar頁面。

  <view bindtap="gotoList">到列表頁</view>

gotoList(){

    wx.switchTab({

      url: '../list/list',

    })

  }

閱讀全文

與微信小程序跳轉到tab欄如何再返回相關的資料

熱點內容
什麼是代理同業業務 瀏覽:366
產品怎麼才能大賣 瀏覽:477
壓濾機膜板濾布屬於什麼產品類別 瀏覽:927
軍事技術包括哪些系統 瀏覽:67
抖音幣代理怎麼用 瀏覽:206
鎮海專利交易多少錢 瀏覽:39
社保醫院怎麼變更小程序 瀏覽:483
濱州總代理電話是多少 瀏覽:789
交易金額超過最大結清金額怎麼辦 瀏覽:728
保險代理人傭金180萬交多少稅 瀏覽:349
資本市場服務什麼行業 瀏覽:804
移動硬碟不讀盤如何恢復數據 瀏覽:400
聊城人事代理如何調動 瀏覽:125
提職調檔之後什麼程序 瀏覽:523
深圳二手房交易稅費都有哪些 瀏覽:885
蘋果哪些產品買applecare 瀏覽:495
三無產品如何抽檢 瀏覽:632
馬尾到南方建材市場多少公里 瀏覽:511
打電話數據用不了怎麼設置 瀏覽:62
米菲代理很久沒登錄了怎麼辦 瀏覽:213