亚洲av无码乱码国产一区二区,午夜理论片yy44880影院,午夜久久久久久禁播电影,熟睡人妻被讨厌的公侵犯

18
2025/04

uniapp怎么組件間傳值的兩種方法

發(fā)布時間:2025-04-18 17:05:54
發(fā)布者:dzw
瀏覽量:
0

我們在做頁面的時候,經(jīng)常會有組件之間傳值的情況,uniapp的組件傳值方法和vue類似,無非兩種URL傳值和事件傳值。

image

第一種辦法,通過url傳值,我們在使用navigateTo進(jìn)行頁面跳轉(zhuǎn)的時候,在頁面的url路徑后面加上所需要傳遞的數(shù)據(jù)。然后在onload中通過返回值就能拿到上一個頁面?zhèn)鬟f過來的數(shù)據(jù)。這種方法適用于簡單數(shù)據(jù)的傳遞,比如字符串,數(shù)字,布爾值。

image

但是,我們也有可能需要傳遞一整個對象,比如想要優(yōu)化接口,避免非必要的請求。這個時候我們可以使用getOpenerEventChannel進(jìn)行傳值,這個能夠傳遞復(fù)雜數(shù)據(jù),比如數(shù)組,對象。我們在跳轉(zhuǎn)的時候額外加上success,固定格式為res.evventchannel.emit,后邊跟著的是我們自定義的需要傳遞的事件名。然后再跟上我們要傳遞的數(shù)據(jù)。

image

在接受頁面我們這樣寫,固定格式的

const eventChannel = this.getOpenerEventChannel()

 eventChannel.on('事件名', (data) => {}),其中的data就是我們傳遞過來的值。

image

第一種方法就算沒有上層也可以通過設(shè)置固定的url來進(jìn)入到該頁面 并實(shí)現(xiàn)數(shù)據(jù)的請求,但是第二種方法如果父頁面沒有的話,便不會得到任何數(shù)據(jù)。我們傳遞簡單數(shù)據(jù)一般使用url傳遞,復(fù)雜數(shù)據(jù)使用getOpenerEventChannel傳值,第一種不論是發(fā)送還是獲取都比第二種簡單。

了解更多uniapp知識點(diǎn)擊這里。

關(guān)鍵詞:
返回列表