一、了解uniapp生命周期
Uniapp是一個跨端開發框架,支持多個平台的開發。在uniapp中,了解它的生命周期對於頁面的優化非常重要。Uniapp生命周期主要有三個階段:
<template> <view> hello world </view> </template> <script> export default{ onLoad(){ console.log('頁面加載了') }, onUnload(){ console.log('頁面卸載了') }, onHide(){ console.log('頁面隱藏了') } } </script>
在頁面渲染之前,Uniapp會先調用onLoad生命周期函數。頁面卸載時,Uniapp會調用onUnload函數,而頁面隱藏,Uniapp會調用onHide函數。當然,Uniapp還有其他生命周期函數,可以根據具體需求進行選擇使用。
二、使用await優化api請求
在項目中,api請求是必不可少的環節。通常的做法是使用Promise或者是回調函數進行請求,而使用await可以更好地管理api請求。
<script> export default{ data(){ return{ dataList:[], isLoading:true } }, async onLoad(){ const result = await this.getData() this.dataList = result.data this.isLoading = false }, methods:{ async getData(){ const {data:{data}} = await uni.request({ url:'https://xxx.com/api/data', method:'GET' }) return { data } } } } </script>
在這個代碼示例中,使用async關鍵字將onLoad生命周期函數變成異步函數,採用await等待api請求的結果。同時,在方法getData中也採用await等待api請求結果返回,從而實現更好的代碼可讀性和管理性。
三、封裝接口請求
在實際開發中,一個接口常常被多個地方使用,而且在不同的地方使用時,傳入的參數也可能有所不同。將接口進行封裝,就可以在代碼重複利用,提高開發效率。
<script> async function getData(url, params={}){ const {data:{data}} = await uni.request({ url:url, method:'GET', data:params }) return data } export default{ data(){ return{ dataList:[], isLoading:true } }, async onLoad(){ this.dataList = await getData('https://xxx.com/api/data',{id:1}) this.isLoading = false } } </script>
在這個代碼示例中,getData函數實現了接口的封裝,從而使業務代碼更加簡潔。在onLoad函數中,調用getData函數獲取數據,並將獲取的數據在頁面中展示。
四、合理使用keep-alive組件
在開發過程中,經常會遇到在不同頁面之間切換的情況,並且在切換後需要重新渲染頁面,這會消耗一定的性能。而使用keep-alive組件可以將前一次頁面渲染的結果緩存起來,這樣在相同的頁面之間切換時將不會重新渲染頁面,提高性能。
<template> <keep-alive> <router-view /> </keep-alive> </template>
在代碼示例中,router-view組件中的頁面組件會被緩存起來,下一次再次訪問時,直接從緩存中讀取。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/300648.html