Rumah hujung hadapan web uni-app Bagaimanakah uniapp melaksanakan pramuat beberapa halaman TabBar yang lain?

Bagaimanakah uniapp melaksanakan pramuat beberapa halaman TabBar yang lain?

Apr 20, 2023 pm 03:08 PM

Dalam beberapa tahun kebelakangan ini, aplikasi mudah alih telah menjadi bahagian penting dalam kehidupan orang ramai. Dengan pembangunan aplikasi mudah alih, semakin banyak aplikasi menggunakan reka bentuk TabBar, terutamanya dalam aplikasi, TabBar telah menjadi kaedah navigasi utama untuk banyak aplikasi. Antaranya, rangka kerja Uniapp boleh dikatakan sebagai rangka kerja pembangunan merentas platform ringan yang paling popular pada masa ini. Walau bagaimanapun, ramai pembangun akan menghadapi masalah biasa apabila menggunakan Uniapp untuk membangunkan aplikasi TabBar: Bagaimana untuk pramuat beberapa halaman TabBar yang lain?

Semasa proses pembangunan Uniapp, TabBar boleh dibuat dengan mengkonfigurasi halaman dalam pages.json. Contohnya, takrifkan halaman berikut dalam pages.json:

{
  "pages": [
    {
      "path": "pages/index/index",
      "style": {}
    },
    {
      "path": "pages/category/category",
      "style": {}
    },
    {
      "path": "pages/cart/cart",
      "style": {}
    },
    {
      "path": "pages/me/me",
      "style": {}
    }
  ],
  "tabBar": {
    "color": "#999999",
    "selectedColor": "#000000",
    "backgroundColor": "#ffffff",
    "borderStyle": "black",
    "list": [
      {
        "pagePath": "pages/index/index",
        "text": "首页",
        "iconPath": "static/tabbar/home.png",
        "selectedIconPath": "static/tabbar/home_active.png"
      },
      {
        "pagePath": "pages/category/category",
        "text": "分类",
        "iconPath": "static/tabbar/category.png",
        "selectedIconPath": "static/tabbar/category_active.png"
      },
      {
        "pagePath": "pages/cart/cart",
        "text": "购物车",
        "iconPath": "static/tabbar/cart.png",
        "selectedIconPath": "static/tabbar/cart_active.png"
      },
      {
        "pagePath": "pages/me/me",
        "text": "我的",
        "iconPath": "static/tabbar/me.png",
        "selectedIconPath": "static/tabbar/me_active.png"
      }
    ]
  }
}
Salin selepas log masuk

Dalam fail konfigurasi ini, kami mentakrifkan 4 halaman dan mencipta TabBar. Antaranya, setiap halaman sepadan dengan item menu dalam TabBar. Apabila kami mengklik pada item menu yang berbeza, Uniapp akan melompat ke halaman yang sepadan.

Walau bagaimanapun, dalam proses ini, Uniapp hanya akan pramuat halaman semasa apabila ia dimuatkan dan tidak akan pramuat halaman lain. Oleh itu, apabila kita bertukar daripada satu halaman TabBar ke halaman yang lain, halaman tersebut mungkin dimuatkan dengan perlahan, menjejaskan pengalaman pengguna. Jadi, bagaimana untuk menyelesaikan masalah ini?

Kaedah untuk pramuat halaman TabBar lain:

Dalam Uniapp, kami boleh pramuat halaman TabBar lain dengan menggunakan uni.request. Kaedah ini boleh mendapatkan data halaman yang ditentukan dengan menghantar permintaan GET dan cache data. Apabila kita mengklik item menu TabBar yang sepadan, sistem akan menyemak sama ada data wujud dalam cache. Jika ia wujud dalam cache, ia akan memaparkan data secara langsung Jika ia tidak wujud, ia akan menghantar permintaan semula dan cache data tersebut.

Dalam pages.json, tambah medan pramuat untuk mentakrifkan URL halaman yang perlu dipramuat:

{
  "pages": [
    {
      "path": "pages/index/index",
      "style": {}
    },
    {
      "path": "pages/category/category",
      "style": {},
      "preload": true
    },
    {
      "path": "pages/cart/cart",
      "style": {},
      "preload": true
    },
    {
      "path": "pages/me/me",
      "style": {},
      "preload": true
    }
  ],
  "tabBar": {
    ...
  }
}
Salin selepas log masuk

Dalam fail konfigurasi di atas, kami menambah kategori, troli dan saya Halaman mempunyai atribut pramuat baharu dan ditetapkan kepada benar. Ini bermakna apabila halaman utama Apl dimuatkan, Uniapp akan memuatkan halaman ini secara automatik dan menyimpannya secara setempat.

Seterusnya, kami memanggil uni.request dalam App.vue untuk melaksanakan fungsi pramuat halaman:

<template>
  <div class="app">
    <uni-tab-bar :list="tabBar.list" :color="tabBar.color" :selected-color="tabBar.selectedColor" :background-color="tabBar.backgroundColor" :border-style="tabBar.borderStyle" @change="onTabChange"></uni-tab-bar>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tabBar: uni.getStorageSync('tabBar') || {
        color: '#999999',
        selectedColor: '#000000',
        backgroundColor: '#ffffff',
        borderStyle: 'black',
        list: []
      },
      currentTab: 0
    }
  },
  onLoad() {
    uni.request({
      url: '/pages/me/me',
      method: 'GET',
      success: (res) => {
        uni.setStorageSync('/pages/me/me', res.data)
      }
    })
    uni.request({
      url: '/pages/cart/cart',
      method: 'GET',
      success: (res) => {
        uni.setStorageSync('/pages/cart/cart', res.data)
      }
    })
    uni.request({
      url: '/pages/category/category',
      method: 'GET',
      success: (res) => {
        uni.setStorageSync('/pages/category/category', res.data)
      }
    })
  },
  methods: {
    onTabChange(e) {
      const url = this.tabBar.list[e.index].pagePath
      this.currentTab = e.index
      uni.setStorageSync('currentTab', e.index)
      let pageData = uni.getStorageSync(url)
      if (!pageData) {
        uni.showLoading()
        // 发送请求获取数据
        uni.request({
          url: url,
          method: 'GET',
          success: (res) => {
            uni.hideLoading()
            pageData = res.data
            // 将获取的数据缓存到本地
            uni.setStorageSync(url, pageData)
          }
        })
      }
    }
  }
}
</script>
Salin selepas log masuk

Dalam kod di atas, kami menggunakan kaedah onLoad App.vue Use uni .permintaan untuk mendapatkan data halaman kategori, troli dan saya dan cache mereka secara setempat.

Apabila item menu TabBar diklik, kami akan memperoleh URL halaman yang sepadan berdasarkan indeks item menu dan menyemak sama ada halaman tersebut telah dicache secara setempat. Jika ia dicache, data dibaca terus dari cache dan halaman itu dipaparkan; jika ia tidak dicache, permintaan GET dihantar untuk mendapatkan data dan dicache secara setempat, dan kemudian halaman itu diberikan.

Di atas ialah cara untuk pramuat halaman TabBar lain dalam Uniapp. Dengan pramuat halaman, kami boleh memaparkan halaman yang sepadan dengan cepat apabila pengguna mengklik item menu TabBar untuk menukar halaman, sekali gus meningkatkan pengalaman pengguna.

Atas ialah kandungan terperinci Bagaimanakah uniapp melaksanakan pramuat beberapa halaman TabBar yang lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah jenis ujian yang boleh anda lakukan dalam aplikasi UNIAPP? Apakah jenis ujian yang boleh anda lakukan dalam aplikasi UNIAPP? Mar 27, 2025 pm 04:59 PM

Artikel ini membincangkan pelbagai jenis ujian untuk aplikasi UNIAPP, termasuk unit, integrasi, fungsional, UI/UX, prestasi, silang platform, dan ujian keselamatan. Ia juga meliputi memastikan keserasian silang platform dan mengesyorkan alat seperti JES

Bagaimanakah anda dapat mengurangkan saiz pakej aplikasi UNIAPP anda? Bagaimanakah anda dapat mengurangkan saiz pakej aplikasi UNIAPP anda? Mar 27, 2025 pm 04:45 PM

Artikel ini membincangkan strategi untuk mengurangkan saiz pakej UNIAPP, memberi tumpuan kepada pengoptimuman kod, pengurusan sumber, dan teknik seperti pemisahan kod dan pemuatan malas.

Apakah alat penyahpepijatan yang tersedia untuk pembangunan Uniapp? Apakah alat penyahpepijatan yang tersedia untuk pembangunan Uniapp? Mar 27, 2025 pm 05:05 PM

Artikel ini membincangkan alat penyahpepijatan dan amalan terbaik untuk pembangunan UNIPP, yang memberi tumpuan kepada alat seperti HBuildex, WeChat Developer Tools, dan Chrome Devtools.

Bagaimanakah anda boleh menggunakan pemuatan malas untuk meningkatkan prestasi? Bagaimanakah anda boleh menggunakan pemuatan malas untuk meningkatkan prestasi? Mar 27, 2025 pm 04:47 PM

Lazy Loading Delers Non-kritikal Sumber untuk meningkatkan prestasi tapak, mengurangkan masa beban dan penggunaan data. Amalan utama termasuk mengutamakan kandungan kritikal dan menggunakan API yang cekap.

Bagaimanakah anda boleh mengoptimumkan imej untuk prestasi web di Uniapp? Bagaimanakah anda boleh mengoptimumkan imej untuk prestasi web di Uniapp? Mar 27, 2025 pm 04:50 PM

Artikel ini membincangkan mengoptimumkan imej dalam UNIPP untuk prestasi web yang lebih baik melalui mampatan, reka bentuk responsif, pemuatan malas, caching, dan menggunakan format WEBP.

Bagaimanakah UNIPP mengendalikan konfigurasi dan gaya global? Bagaimanakah UNIPP mengendalikan konfigurasi dan gaya global? Mar 25, 2025 pm 02:20 PM

UNIPP menguruskan konfigurasi global melalui manifest.json dan gaya melalui app.vue atau app.scss, menggunakan uni.scss untuk pembolehubah dan campuran. Amalan terbaik termasuk menggunakan SCSS, gaya modular, dan reka bentuk responsif.

Apakah sifat yang dikira di Uniapp? Bagaimana mereka digunakan? Apakah sifat yang dikira di Uniapp? Bagaimana mereka digunakan? Mar 25, 2025 pm 02:23 PM

Ciri -ciri yang dikira oleh Uniapp, yang diperolehi dari Vue.js, meningkatkan pembangunan dengan menyediakan pengendalian data reaktif, boleh diguna semula, dan dioptimumkan. Mereka mengemas kini secara automatik apabila kebergantungan berubah, menawarkan manfaat prestasi dan memudahkan Co -Management Co

Apakah beberapa corak umum untuk menguruskan struktur data yang kompleks di UNIPP? Apakah beberapa corak umum untuk menguruskan struktur data yang kompleks di UNIPP? Mar 25, 2025 pm 02:31 PM

Artikel ini membincangkan menguruskan struktur data yang kompleks di UNIPP, yang memberi tumpuan kepada corak seperti Singleton, Observer, Kilang, dan Negeri, dan strategi untuk mengendalikan perubahan keadaan data menggunakan API VUEX dan VUE 3 API.

See all articles