国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

uni-app -移動端H5小程序 關(guān)閉當前頁,返回上一頁并調(diào)用上一頁的方法

這篇具有很好參考價值的文章主要介紹了uni-app -移動端H5小程序 關(guān)閉當前頁,返回上一頁并調(diào)用上一頁的方法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

????? 作者簡介:程序員半夏 , 一名全棧程序員,擅長使用各種編程語言和框架,如JavaScript、React、Node.js、Java、Python、Django、MySQL等.專注于大前端與后端的硬核干貨分享,同時是一個隨緣更新的UP主. 你可以在各個平臺找到我!
?? 本文收錄于專欄: uniapp踩坑指南
?? 專欄介紹: 本專欄提供了uni-app開發(fā)過程中必不可少的組件和解決方案。本書詳細介紹了各種常用組件的使用方法和技巧,以及如何應(yīng)對uniapp開發(fā)中遇到的各種問題。

移動端關(guān)閉當前頁面,uniapp踩坑指南,uni-app,小程序,前端,ios,android

場景

假設(shè)我們有A和B兩個頁面,A頁面是一個列表,B頁面是從A頁面點擊某個列表項進入的,當我們在B頁面操作完之后,需要返回A頁面,此時需要刷新A頁面的數(shù)據(jù)。

方法1:getCurrentPages

介紹

在uni-app中,getCurrentPages()方法用于獲取當前頁面棧的實例數(shù)組。頁面棧是指打開的頁面的層級關(guān)系,當前頁面在數(shù)組中的索引為pages.length - 1,上一頁在數(shù)組中的索引為pages.length - 2,以此類推。

getCurrentPages()方法返回的是一個頁面棧數(shù)組,數(shù)組中的每個元素都是一個頁面實例,包含了頁面的數(shù)據(jù)和方法。通過獲取頁面棧數(shù)組,我們可以根據(jù)索引獲取到上一頁的實例,然后可以調(diào)用上一頁的方法或訪問上一頁的數(shù)據(jù)。

具體流程如下:

  1. 調(diào)用getCurrentPages()方法獲取當前頁面棧的實例數(shù)組:
var pages = getCurrentPages();
  1. 使用pages.length - 2獲取上一頁的索引,然后通過pages[beforePage]獲取上一頁的實例:
var beforePage = pages[pages.length - 2];
  1. 通過上一頁的實例,可以訪問上一頁的數(shù)據(jù)和方法,例如:
beforePage.data // 可以訪問上一頁的數(shù)據(jù)
beforePage.method() // 可以調(diào)用上一頁的方法

通過以上步驟,我們可以獲取到上一頁的實例,并進行相應(yīng)的操作。這樣就可以實現(xiàn)在當前頁返回上一頁并刷新數(shù)據(jù)的功能。

代碼演示

  1. 在A頁面的methods中,編寫獲取數(shù)據(jù)的邏輯。
<script>
export default {
  data() {
    return {
      dataList: [] // A頁面的數(shù)據(jù)列表
    }
  },
  methods: {
    getData() {
      // 發(fā)送請求獲取數(shù)據(jù),并更新dataList
    }
  }
}
</script>
  1. 在A頁面的列表項上添加點擊事件,跳轉(zhuǎn)到B頁面,并傳遞需要的參數(shù)。
<template>
  <view>
    <!-- A頁面的列表 -->
    <view v-for="(item, index) in dataList" :key="index" @click="goToB(item)">
      <!-- 列表項的內(nèi)容 -->
    </view>
  </view>
</template>

<script>
export default {
  methods: {
    goToB(item) {
      uni.navigateTo({
        url: '/pages/BPage?id=' + item.id // 跳轉(zhuǎn)到B頁面,并傳遞參數(shù)
      })
    }
  }
}
</script>
  1. 在B頁面中,完成相應(yīng)的操作后,通過uni.navigateBack方法返回A頁面。
<script>
export default {
  methods: {
    goBack() {
      
        var pages = getCurrentPages();
        var beforePage = pages[pages.length - 2];

        
        uni.navigateBack({
            success: function() {
                beforePage.getData();
            }
        });
         
         
    }
  }
}
</script>

這樣,當點擊返回按鈕時,會返回上一頁并調(diào)用上一頁的getData函數(shù)來刷新數(shù)據(jù)。

報錯not a function?請注意?。。?/h3>

在uni-app中是適配多端的,beforePage.getData();只在h5中有效,在app端和微信小程序端都會報錯 getData not a function;

在APP端和微信小程序需要加上

beforePage.$vm.

修改后完整的代碼如下

var pages = getCurrentPages();
var beforePage = pages[pages.length - 2];

uni.navigateBack({
    success: function() {
        // #ifdef H5
        beforePage.getData()
        // #endif
        // #ifndef H5
        beforePage.$vm.getData()
        // #endif
    }
});
         

注意2:Android端執(zhí)行之后報Cannot read property ‘$vm’ of undefined

在完成代碼編寫后,保存并重新加載軟件后,上一頁已經(jīng)不存在了。此時,只需要退出軟件并重新進入即可解決問題。

方法2 :onshow

介紹

onshow屬于uni-app的頁面生命周期: 監(jiān)聽頁面顯示,頁面每次出現(xiàn)在屏幕上都觸發(fā),包括從下級頁面點返回露出當前頁面

onshow是一個會重復觸發(fā)的事件。a頁面剛進入時,會觸發(fā)a頁面的onShow。從其他頁面跳轉(zhuǎn)或者返回a頁面,會再次觸發(fā)onShow。

移動端關(guān)閉當前頁面,uniapp踩坑指南,uni-app,小程序,前端,ios,android

代碼演示

  1. 在A頁面的onShow生命周期函數(shù)中,編寫獲取數(shù)據(jù)的邏輯。這樣每次返回A頁面時都會重新獲取最新的數(shù)據(jù)。
<script>
export default {
  data() {
    return {
      dataList: [] // A頁面的數(shù)據(jù)列表
    }
  },
  onShow() {
    // 獲取數(shù)據(jù)的邏輯,例如發(fā)送請求獲取最新數(shù)據(jù)
    this.getData()
  },
  methods: {
    getData() {
      // 發(fā)送請求獲取數(shù)據(jù),并更新dataList
    }
  }
}
</script>
  1. 在A頁面的列表項上添加點擊事件,跳轉(zhuǎn)到B頁面,并傳遞需要的參數(shù)。
<template>
  <view>
    <!-- A頁面的列表 -->
    <view v-for="(item, index) in dataList" :key="index" @click="goToB(item)">
      <!-- 列表項的內(nèi)容 -->
    </view>
  </view>
</template>

<script>
export default {
  methods: {
    goToB(item) {
      uni.navigateTo({
        url: '/pages/BPage?id=' + item.id // 跳轉(zhuǎn)到B頁面,并傳遞參數(shù)
      })
    }
  }
}
</script>
  1. 在B頁面中,完成相應(yīng)的操作后,通過uni.navigateBack方法返回A頁面。
<script>
export default {
  methods: {
    goBack() {
      // 完成操作后返回A頁面
      uni.navigateBack({
        delta: 1 // 返回的頁面數(shù),如果是返回上一級頁面,delta為1
      })
    }
  }
}
</script>
  1. 在A頁面的onShow生命周期函數(shù)中,重新獲取數(shù)據(jù),以刷新A頁面的數(shù)據(jù)。

通過以上步驟,當從B頁面返回A頁面時,A頁面的onShow生命周期函數(shù)會被觸發(fā),重新獲取數(shù)據(jù)并刷新頁面。這樣就實現(xiàn)了從B頁面返回A頁面并刷新A頁面數(shù)據(jù)的功能。

缺點

雖然onShow生命周期函數(shù)在實現(xiàn)從B頁面返回A頁面并刷新數(shù)據(jù)的功能時非常方便,但也存在一些缺點:

  1. 不適用于首次加載:onShow生命周期函數(shù)在頁面每次顯示時都會觸發(fā),包括首次加載和從其他頁面返回。如果A頁面是首次加載時需要獲取數(shù)據(jù),onShow生命周期函數(shù)會在每次返回A頁面時都觸發(fā)獲取數(shù)據(jù)的邏輯,導致數(shù)據(jù)重復獲取和頁面重復刷新。

  2. 無法傳遞參數(shù):onShow生命周期函數(shù)沒有參數(shù)傳遞的機制,無法在返回A頁面時傳遞參數(shù)給onShow函數(shù),因此無法根據(jù)傳遞的參數(shù)來決定是否需要刷新數(shù)據(jù),或者刷新哪些數(shù)據(jù)。

  3. 頁面切換時性能開銷:在返回A頁面時,onShow生命周期函數(shù)會被觸發(fā),這可能會導致頁面在切換時出現(xiàn)短暫的卡頓或延遲,特別是當A頁面的數(shù)據(jù)量較大或需要進行復雜的數(shù)據(jù)處理時。

  4. 無法精確控制刷新時機:onShow生命周期函數(shù)的觸發(fā)時機是在頁面顯示時,無法精確控制刷新數(shù)據(jù)的時機。如果需要在B頁面完成某個操作后立即刷新A頁面的數(shù)據(jù),使用onShow生命周期函數(shù)無法滿足需求。

綜上所述,雖然onShow生命周期函數(shù)在一些簡單的場景下可以方便地實現(xiàn)從B頁面返回A頁面并刷新數(shù)據(jù),但在復雜的場景下可能存在一些缺點和不足。在實際開發(fā)中,可以根據(jù)具體需求選擇合適的數(shù)據(jù)刷新方案,例如使用事件總線、vuex等來進行數(shù)據(jù)傳遞和管理,或者使用自定義的生命周期函數(shù)來實現(xiàn)更精確的控制。文章來源地址http://www.zghlxwxcb.cn/news/detail-753514.html

到了這里,關(guān)于uni-app -移動端H5小程序 關(guān)閉當前頁,返回上一頁并調(diào)用上一頁的方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • uni-app移動端-H5-微信小程序下載保存圖片,文檔和視頻到手機,帶進度條

    可移步插件地址,可直接導入hbuilderx示例項目查看: uni-app移動端-H5-微信小程序下載保存圖片,文檔和視頻到手機,帶進度條 具體代碼如下

    2024年02月13日
    瀏覽(27)
  • uni-app(微信小程序)獲取當前位置uni.getLocation

    uni-app(微信小程序)獲取當前位置uni.getLocation

    ?1、微信公眾平臺? 開發(fā)? 開發(fā)管理? ?2、開通之后到項目文件 ? ?3、下載騰訊地圖插件并引入到文件中 ? ?

    2024年02月11日
    瀏覽(101)
  • uni-app如何區(qū)分 app、h5、小程序代碼; uni-app如何判斷是android、ios、小程序

    uni-app如何區(qū)分 app、h5、小程序代碼; uni-app如何判斷是android、ios、小程序

    uniapp是DCloud公司于2012年開始研發(fā)的能夠一次代碼開發(fā),生成H5、小程序(微信、支付寶、百度、華為等)、APP等應(yīng)用的技術(shù)的統(tǒng)稱,開發(fā)工具是HBuilderX,功能非常強大,由此引申出許多技術(shù)社區(qū)與生態(tài)環(huán)境。 使用HBuilderX開發(fā)Uniapp程序的項目,用它生成多端應(yīng)用,由于兼容各種

    2024年02月11日
    瀏覽(93)
  • 前后端分離項目,vue+uni-app+php+mysql電影院售票系統(tǒng)(H5移動項目) 開題報告

    ? 畢業(yè)論文 基于Vue.js電影院售票系統(tǒng)(H5) 開題報告 學??? 院: ?????????????????????? 專??? 業(yè): ? ????????????????? ???? 年??? 級: ???????????????????? ?? 學生姓名: ?????????????????????? 指導教師: ????? 黃菊華??

    2024年02月07日
    瀏覽(29)
  • uni-app - App 平臺內(nèi)嵌網(wǎng)頁物理手機自帶返回鍵失效解決方案(內(nèi)嵌的 webview 網(wǎng)頁 H5 打包后手機物理返回鍵無效直接退出應(yīng)用了)

    uni-app - App 平臺內(nèi)嵌網(wǎng)頁物理手機自帶返回鍵失效解決方案(內(nèi)嵌的 webview 網(wǎng)頁 H5 打包后手機物理返回鍵無效直接退出應(yīng)用了)

    當您需要打包 App(*.apk) 平臺時,發(fā)現(xiàn)內(nèi)嵌的 H5 頁面雖然可以正常顯示與運行,但是手機的物理返回鍵卻無法使用,當點擊手機物理返回按鍵(或手勢)時,直接顯示 “再按一次退出應(yīng)用”,而 并非返回上一個\\\"網(wǎng)頁\\\"。 出現(xiàn)這種情況的原因是, 內(nèi)嵌的網(wǎng)頁與您的 App “毫無

    2024年02月09日
    瀏覽(111)
  • uni-app 微信小程序 保存當前頁面為圖片

    由于在微信小程序環(huán)境下面沒法獲取dom,很多方法都很難去實現(xiàn)保存html結(jié)構(gòu)的頁面,比較有效的#painter 可以不需要操作dom,但是那玩意兒和重新用js寫個頁面一樣,簡單的頁面還好,復雜的,元素比較多的就很麻煩,所以考慮用webview+html2canvas來完成 先說一下思路,既然在微

    2024年02月11日
    瀏覽(22)
  • uni-app滾動分頁 兼容(App 小程序 H5)

    uni-app滾動分頁 兼容(App 小程序 H5)

    因為手機端本身屏幕空間不大 所以大家一般都會選擇用滾動分頁 首先 我在根目錄下創(chuàng)建了一個 api目錄 下面創(chuàng)建了一個bookApi.js 其中寫了一個請求函數(shù) getBookList 根據(jù)當前頁 page 和 每頁展示多少條 pageSize 獲取數(shù)據(jù) 那么 我的組件代碼是這樣的 首先 我們肯定要引入bookApi.js中的

    2024年02月16日
    瀏覽(95)
  • uni-app小程序刷新當前頁面的兩種方法

    方法一 wx.relaunch來刷新當前頁面,頁面會被重載,若路由攜帶參數(shù)需自行拼接,方法如下 (如果用電腦打開小程序,該方法有bug) 上面是獲取頁面路由和參數(shù)的方法,具體使用如下 方法二(推薦) 通過獲取該頁面實例執(zhí)行其內(nèi)部的生命周期方法來刷新頁面

    2024年02月12日
    瀏覽(33)
  • uni-app實現(xiàn) app 小程序 手機端H5掃碼功能

    uni-app實現(xiàn) app 小程序 手機端H5掃碼功能

    首先 掃碼這個功能小程序和App都是有現(xiàn)成的方法 但是H5是不行的 我們可以看這樣一段代碼 這里 我們用了條件編譯 App和小程序中的代碼是 一樣的 他們都可以正常執(zhí)行scanCode進行掃碼 至于H5手機端界面 我用web-view套了個百度的鏈接進來 其實 大家可以參考我的文章 vue實現(xiàn)二維

    2024年02月11日
    瀏覽(109)
  • uni-app | 小程序嵌入H5頁面實現(xiàn)支付功能

    uni-app | 小程序嵌入H5頁面實現(xiàn)支付功能

    前一陣在做公司小程序時,有個需要對接支付的功能。但是本著訂單數(shù)據(jù)和支付統(tǒng)一入口的設(shè)計原則,計劃是對接公司商城現(xiàn)有的支付體系。故本方案是分析對接商城支付幾種可行方案以及每種方案的可行性,最后綜合選出一種最佳的方案。 實現(xiàn)方式 跳轉(zhuǎn)商城小程序支付 跳

    2024年02月07日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包