日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微信小程序学习笔记(4)--------框架之逻辑层

發布時間:2025/4/16 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微信小程序学习笔记(4)--------框架之逻辑层 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? 邏輯層

? ? ? ??? ?邏輯層(App?Service):小程序框架的邏輯層是由JavaScript編寫的,邏輯層將數據進行處理后發送給視圖層,同時接受視圖層的事件反饋。

? ? App進行程序注冊,Page進行頁面注冊

? ? getApp獲取App實例,getCurrentPages獲取當前頁面棧

一、程序注冊?

1、App

?????? ?App()函數用來注冊小程序。接受一個Object參數,其指定小程序的生命周期函數。

? ? ?注意:App()必須在app.js中注冊,而且不能注冊多個

? ? Object參數說明

屬性

類型

描述

觸發時機

onLaunch

Function

生命周期函數--初始化

初始化完成是,只會觸發一次

onShow

Function

生命明明周期函數--小程序顯示

啟動時,或從后臺進入前臺顯示

onHide

Function

生命周期函數--小程序隱藏

從前臺進入后臺

其他

Any

開發者可以添加任意的函數或數據到Object參數中,用this可以訪問

?

?

2、getApp()

? ? ? ? ? ? ?getApp()是全局函數,可以獲取小程序實例。

? ? 注意:不要在定義App()內的函數中調用getApp(),使用this就可以拿到app實例。通過getApp()獲取實例后,不要私自調用生命周期函數。

3、getCurrentPages()

? ? ? ? ??不要在onLaunch的時候調用getCurrentPages(),app還沒有生成。

?

二、頁面注冊

Page

? ? Page()函數用來注冊一個頁面,接受一個Object參數,其指定頁面的初始數據、生命周期函數、事件處理函數等。

?

屬性

類型

描述

data

Object

頁面的初始數據

onLoad

Function

生命周期函數--監聽頁面加載

onReady

Function

生命周期函數--監聽頁面初次渲染完成

onShow

Function

生命周期函數--監聽頁面顯示

onHide

Function

生命周期函數--監聽頁面隱藏

onUnload

Function

生命周期函數--監聽頁面卸載

onPullDownRefresh

Function

頁面相關事件處理函數--監聽用戶下拉動作

onReachBottom

Function

頁面上拉觸底事件的處理函數

其他

Any

開發者可以添加任意的函數或數據到?object?參數中,在頁面的函數中用?this?可以訪問

?

1、初始化數據

??????初始化數據將作為頁面的第一次渲染。data將會以JSON的形式由邏輯層傳至渲染層,所以其數據必須是可以轉換成JSON的格式:字符串,數字,布爾值,對象,數組。

?????渲染層可以通過wxml對數據進行綁定。

?2、生命周期函數

(1)、onLoad:頁面加載

????????????一個頁面只會調用一次

? ? ?接收頁面參數可以獲取wx.navigateTo和wx.redirectTo及<navigator/>中的?query。

(2)、onShow:頁面顯示

???????????每次打開頁面都會調用?一次

(3)、onReady:頁面初次渲染完成。

?????? ?一個頁面只會調用一次,代表頁面已經準備妥當,可以和試圖層進行交互

(4)、onHide:頁面隱藏

??????????????當navigateTo或底部tab切換時調用。

(5)、onUnload:頁面卸載

? ? ? ? ? ??當redirectTo或navigateBack的時候調用。

3、頁面相關事件處理函數

? ? ? ? ? ? ??OnPullDownRefresh:下拉刷新需要在config的windows選項中開啟enablePullDownRefresh。當處理完數據刷新后,wx.stopPullDownRefresh可以停止當前頁面的下拉刷新。

4、事件處理函數

? ? ? ? ? ?除了初始化數據和生命周期函數,Page?中還可以定義一些特殊的函數:事件處理函數。在渲染層可以在組件中加入事件綁定,當達到觸發事件時,就會執行?Page?中定義的事件處理函數。

?Page.prototype.setData()

???? ?setData?函數用于將數據從邏輯層發送到視圖層,同時改變對應的?this.data?的值。

? ? 注意:

? ? 1.?直接修改?this.data?無效,無法改變頁面的狀態,還會造成數據不一致。

? ? 2.?單次設置的數據不能超過1024kB,請盡量避免一次設置過多的數據。

?setData()?參數格式

? ? ? ? ? ??接受一個對象,以?key,value?的形式表示將?this.data?中的?key?對應的值改變成?value。

其中?key?可以非常靈活,以數據路徑的形式給出。

? getCurrentPages()

? ? getCurrentPages()?函數用于獲取當前頁面棧的實例,以數組形式按棧的順序給出,第一個元素為首頁,最后一個元素為當前頁面。

? ? 注意:不要嘗試修改頁面棧,會導致路由以及頁面狀態錯誤。

三、模塊化

文件作用域

? ? 在?JavaScript?文件中聲明的變量和函數只在該文件中有效;不同的文件中可以聲明相同名字的變量和函數,不會互相影響。

? ? 通過全局函數 getApp()可以獲取全局的應用實例,如果需要全局的數據可以在?App()?中設置。

模塊化

? ? 我們可以將一些公共的代碼抽離成為一個單獨的?js?文件,作為一個模塊。模塊只有通過?module.exports?或者?exports?才能對外暴露接口。

需要注意的是:

? ? exports?是?module.exports?的一個引用,因此在模塊里邊隨意更改?exports?的指向會造成未知的錯誤。所以我們更推薦開發者采用module.exports?來暴露模塊接口。

四、API

轉載于:https://www.cnblogs.com/joe-tang/p/8058351.html

總結

以上是生活随笔為你收集整理的微信小程序学习笔记(4)--------框架之逻辑层的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。