? 同學們大家好,我是小伊同學,上一節課我們講解了全局數據的讀寫方法,那么在頁面間同樣需要數據交互,今天我們就來學習這部分內容。
? 在微信小程序中,我們常常需要將數據在頁面之間進行傳遞,比如用戶的身份信息,在不同頁面的接口中都需要這個參數,服務端通過這個參數來判斷是哪個用戶請求了服務。因此,數據在頁面之間的傳遞在小程序開發中也是必不可少的。
? 頁面間數據傳遞主要有兩種方式,第一種,通過頁面跳轉過程中攜帶參數,另一種方式是將數據保存在全局數據中,每個頁面再從全局數據中讀取。在本小程序中,我們主要使用了第二種,因此我們將講解第二種方式,對于第一種同學們可以通過微信開發者文檔進行學習。
? 具體來說,我們可以通過URL傳遞參數。在原頁面中,js文件中調用API進行跳轉時在URL路徑結尾后帶參數。參數與路徑之間使用 ? 分隔,參數鍵與參數值用?=?相連,不同參數用?&?分隔;如 "path?key=value&key2=value2"?。
? 在打開的新頁面中,js文件中onLoad函數接收參數中含有傳遞過來的數據。例如這里的示例,我們已經學過redirectTo是頁面跳轉的api,當我們執行后,在新頁面就可以收到id變量,由于字符串可以拼接,我們可以在左邊寫成id=然后引號結束加號加上變量值。
? 其次,可以通過頁面間事件通信通道(EventChannel)傳遞參數
在原頁面中,js文件中調用API進行跳轉時在success回調函數中向被打開頁面傳送數據。在打開的新頁面中,js文件中onLoad函數持續監聽事件獲取頁面傳遞參數。同樣是傳遞id參數,我們分別拷貝使用這兩段代碼打開事件通信通道即可。
? 下面我們來比較一下這幾種方式。URL傳遞參數,只能從在A頁面打開B頁面時,從A頁面向B頁面傳遞參數。事件通信通道(EventChannel)傳遞參數,在A頁面打開B頁面時,可以從A頁面向B頁面傳遞參數,也可以同時從B頁面向A頁面傳遞參數(我們剛才只介紹了前者,后者給大家作為作業自學)。
? 這兩種方式通常用于傳遞簡單數據,如標志信息、id信息和字符串等,使用時需要依賴路由API。而全局數據交互:不介意頁面的打開順序,通常用于傳遞重要共享數據,該數據往往在多個頁面都需要而不僅僅限于兩個頁面之間,使用時需要使用getApp()。
? 日拱一卒,功不唐捐。涓流所積,終成滄海。
想看視頻版?
關注公號“微程序學堂”,我們的視頻教程即將上線
如果你自己寫了好文章想投稿
請聯系我們