知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!
您當前位置>首頁 » 新聞資訊 » 小程序相關(guān) >
給原生小程序安排上Composition API
發(fā)表時間:2021-1-4
發(fā)布人:葵宇科技
瀏覽次數(shù):52
使用示例通過對邏輯層的封裝,讓原生小程序使用Vue3的Composotion API
index.wxml
<view>
<view>{{count}}</view>
<button bindtap="add">數(shù)字 +1</button>
</view>
復(fù)制代碼
index.js
import {Epage, ref, onShowHooks} from 'enhance-weapp'
function useCount() {
const count = ref(0)
const add = () => {
count.value++
}
onShowHooks(() => {
console.log('我是useCount')
})
return {
count,
add
}
}
Epage({
setup() {
onShowHooks(() => {
console.log('我是setup')
})
return useCount()
}
})
復(fù)制代碼
原理簡述
流程圖先走一波
- Epage函數(shù)會對傳入的
options
對象屬性進行遍歷,對所有的生命周期方法進行裝飾,將生命周期改造成數(shù)組結(jié)構(gòu),并提供相關(guān)的hooks方式以調(diào)用注冊。 - 在onLoad/created中檢查并執(zhí)行
setup
函數(shù),拿到其返回值setupData
。 - 創(chuàng)建
options.data
對象副本(如果有的話),使用reactive
將其響應(yīng)式后保存到this.data$
屬性上。 - 遍歷
setupData
,將其值直接賦值給this.data$
,響應(yīng)式解包賦值給this.data
。 - 調(diào)用
this.setData(this.data)
,同步數(shù)據(jù)至渲染層。 - 保存
this.data
副本至this.__oldData__
。 - 使用
watch
監(jiān)聽this.data$
,響應(yīng)式觸發(fā)后diffthis.data$
與this.__oldData__
。 - 調(diào)用
this.setData(diffData)
,同步數(shù)據(jù)至渲染層。 - 優(yōu)化部分:當頁面onHide時會取消響應(yīng)式監(jiān)聽,onShow時會重新監(jiān)聽并diff一次數(shù)據(jù)。
以上是核心的實現(xiàn)思路,除此之外還有全局mixins
、生命周期阻塞執(zhí)行、全局生命周期控制等邏輯,具體可以去enhance-weapp,看下介紹和源碼。
相關(guān)案例查看更多
相關(guān)閱讀
- 小程序定制
- 云南etc微信小程序
- 云南做百度小程序的公司
- 網(wǎng)站建設(shè)方案 doc
- 網(wǎng)站維護
- 云南花農(nóng)小程序
- 小程序被騙
- 河南小程序制作
- 報廢車拆解系統(tǒng)
- 云南網(wǎng)站建設(shè)百度
- 云南網(wǎng)站維護
- 云南小程序代建
- 云南網(wǎng)站建設(shè)開發(fā)
- 微信分銷系統(tǒng)
- 云南網(wǎng)站建設(shè)公司
- 智慧農(nóng)貿(mào)市場
- 云南微信小程序開發(fā)
- 云南網(wǎng)站建設(shè)價格
- 專業(yè)網(wǎng)站建設(shè)公司
- 網(wǎng)站建設(shè)哪家強
- 網(wǎng)站建設(shè)首選
- .net網(wǎng)站
- 云南軟件定制公司
- 南通小程序制作公司
- 網(wǎng)站小程序
- 云南網(wǎng)站建設(shè)專業(yè)品牌
- 網(wǎng)站建設(shè)首頁
- 昆明小程序開發(fā)聯(lián)系方式
- 云南電商網(wǎng)站建設(shè)
- 旅游網(wǎng)站建設(shè)