微信小程序傳值(傳遞數(shù)據(jù))的一些方法匯總
URL參數(shù)傳遞:可以通過(guò)URL參數(shù)的方式將數(shù)據(jù)傳遞給小程序頁(yè)面。
Storage存儲(chǔ):可以通過(guò)Storage API將數(shù)據(jù)存儲(chǔ)在本地,然后在小程序頁(yè)面中讀取。
全局變量:可以將數(shù)據(jù)存儲(chǔ)在小程序的全局變量中,然后在小程序頁(yè)面中讀取。
數(shù)據(jù)綁定:可以通過(guò)數(shù)據(jù)綁定的方式將數(shù)據(jù)傳遞給小程序頁(yè)面。
自定義事件:可以通過(guò)自定義事件的方式將數(shù)據(jù)傳遞給小程序頁(yè)面。
WebSocket:可以通過(guò)WebSocket協(xié)議將數(shù)據(jù)傳遞給小程序頁(yè)面。
數(shù)據(jù)庫(kù):可以通過(guò)小程序提供的數(shù)據(jù)庫(kù)API將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中,然后在小程序頁(yè)面中讀取。
1、使用全局變量傳遞數(shù)據(jù)
利用app.js 中的 globalData 將數(shù)據(jù)存儲(chǔ)為全局變量,在需要使用的頁(yè)面通過(guò)getApp().globalData獲取數(shù)據(jù)
app.js
App({ globalData:{ data: { name: 'demo' } } })
使用組件
let app = getApp() app.globalData.data
2、使用本地存儲(chǔ)數(shù)據(jù)傳遞
使用小程序提供緩存
同步緩存:wx.setStorageSync 與 wx.getStorageSync
異步緩存:wx.setStorage 與 wx.getStorage
移除本地緩存:wx.removeStorageSync(同步)、wx.removeStorage(異步)
// 將數(shù)據(jù)存儲(chǔ)在本地緩存中指定的 key 中 wx.setStorgaeSync('data','hello') // 從本地緩存中同步獲取指定 key 的內(nèi)容 wx.getStorageSync('data') // 從本地緩存中移除指定 key wx.removeStorgae('data')
3、使用路由傳遞數(shù)據(jù)
傳遞組件
wx.navigateTo({ url: 'test?id=1', success: (res)=> { // 通過(guò) eventChannel 向被打開(kāi)頁(yè)面?zhèn)魉蛿?shù)據(jù) res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'test' }) } })
使用組件
Page({ onLoad: function(option){ console.log(option.query) // 監(jiān)聽(tīng) acceptDataFromOpenerPage 事件,獲取上一頁(yè)面通過(guò) eventChannel 傳送到當(dāng)前頁(yè)面的數(shù)據(jù) eventChannel.on('acceptDataFromOpenerPage', (data)=> { console.log(data) }) } })
4、父子組件使用selectComponent('#頁(yè)面id'),triggerEvent('方法名','值')
<view id='demo' bind:returnDate='handleReturnDate'><view> Page({ handleData(data){ this.selectComponent("#demo").showModal(data); } // 子組件傳遞過(guò)來(lái)的值 handleReturnDate(data){ console.log(data) } }) Component({ methods:{ // 父組件傳遞過(guò)來(lái)的數(shù)據(jù) showModal(data){ console.log(data) }, submit(){ // 子組件傳遞數(shù)據(jù)給父組件 this.triggerEvent("returnDate", sportsGuidance); } } })
5、子組件通過(guò)properties接收:
父組件parent
parent.wxml <view> <child :name='jack'></child> </view> parent.json { "usingComponents": { "child":"/child/child", }, "navigationBarTitleText": "父組件的導(dǎo)航標(biāo)題" }
子組件 child
child.wxml
<view> 父組件傳遞過(guò)來(lái)的name:{{name}} </view>
child.js
Component({ // 接受父組件傳遞過(guò)來(lái)的屬性 properties:{ name:String //簡(jiǎn)化的定義方式 //name:{ //type:String, //value:'' //} }, // 私有數(shù)據(jù),可用于模板渲染 data:{}, // 組件生命周期聲明對(duì)象 lifetime:{ }, // 組件所在頁(yè)面的生命周期聲明對(duì)象 pageLifetimes:{ }, // 事件響應(yīng)函數(shù)和任意的自定義方法 methods:{} })
總結(jié)
到此這篇關(guān)于微信小程序傳值(傳遞數(shù)據(jù))的一些方法匯總的文章就介紹到這了,更多相關(guān)微信小程序傳值 傳遞數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一個(gè)非常好用的文字滾動(dòng)的案例,鼠標(biāo)懸浮可暫停[兩種方案任選]
本文主要介紹了非常好用的文字滾動(dòng)的案例,鼠標(biāo)懸浮可暫停的兩種實(shí)現(xiàn)方案,代碼簡(jiǎn)潔,可收藏備用。需要的朋友來(lái)看下吧2016-12-12微信小程序?qū)崿F(xiàn)分享商品海報(bào)功能
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)分享商品海報(bào)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09JavaScript的DOM與BOM的區(qū)別與用法詳解
這篇文章主要為大家詳細(xì)介紹了JavaScript的DOM與BOM的區(qū)別與用法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-03-03JS中比較兩個(gè)Object數(shù)組是否相等方法實(shí)例
在本篇文章里小編給大家整理的是一篇關(guān)于JS中比較兩個(gè)Object數(shù)組是否相等方法實(shí)例內(nèi)容,有需要的朋友們學(xué)習(xí)下。2019-11-11layui 監(jiān)聽(tīng)彈窗關(guān)閉并刷新父級(jí)table的場(chǎng)景分析
這篇文章主要介紹了layui 監(jiān)聽(tīng)彈窗關(guān)閉并刷新父級(jí)table的場(chǎng)景分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-07-07javascript伸縮菜單欄實(shí)現(xiàn)代碼分享
這篇文章主要介紹了javascript伸縮菜單欄實(shí)現(xiàn)代碼,點(diǎn)擊標(biāo)題顯示下級(jí)菜單,節(jié)約了空間,使頁(yè)面排版更加緊湊,感興趣的小伙伴們可以參考一下2015-11-11javascript 獲取HTML DOM父、子、臨近節(jié)點(diǎn)
經(jīng)常要獲取頁(yè)面中某個(gè)元素,然后更新該元素的樣式、內(nèi)容等。如何獲取要更新的元素,是首先要解決的問(wèn)題。這里簡(jiǎn)單做一下總結(jié)2014-06-06JavaScript數(shù)組特性與實(shí)踐應(yīng)用深入詳解
這篇文章主要介紹了JavaScript數(shù)組特性與實(shí)踐應(yīng)用,較為深入而詳細(xì)的分析了javascript數(shù)組的功能、屬性、使用方法及操作注意事項(xiàng),需要的朋友可以參考下2018-12-12