一、了解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-hk/n/300648.html
微信掃一掃
支付寶掃一掃