<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
經過web前端開發的學習,相信大家對於前端開發有了一定深入的瞭解,今天我開設了微信小程式專欄,主要想從行動端開發方向進一步發展,而對於我來說寫行動端博文的第一站就是小程式開發,希望看到我文章的朋友能對你有所幫助。
生命週期(Life Cycle)是指一個物件從建立->執行->銷燬的整個階段,強調的是一個時間段;小程式執行的過程也是有生命週期,小程式的啟動表示生命週期的開始、小程式的關閉表示生命週期的結束,中間小程式執行的過程就是小程式的生命週期。
在小程式中,生命週期分為兩類,分別是:
應用生命週期:特指小程式從啟動 -> 執行 -> 銷燬的過程
頁面生命週期:特指小程式中,每個頁面的載入 -> 渲染 -> 銷燬的過程
其中,頁面的生命週期範圍比較小,應用程式的生命週期範圍比較大。
生命週期函數:是由小程式框架提供的內建函數,會伴隨著生命週期,自動按次序執行。
生命週期函數的作用:允許程式設計師在特定的時間點,執行某些特定的操作。例如:頁面剛載入的時候,可以在 onLoad 生命週期函數中初始化頁面的資料。
注意:生命週期強調的是時間段,生命週期函數強調的是時間點。
小程式中的生命週期分為兩類,分別是:
應用生命週期函數:特指小程式從啟動 -> 允許 -> 銷燬期間依次呼叫的那些函數
小程式的應用生命週期函數需要在 app.js 中進行宣告,程式碼如下:
// app.js App({ //當小程式初始化完成時,會觸發 onLaunch(全域性只觸發一次) onLaunch: function () { }, //當小程式啟動,或從後臺進入前臺顯示,會觸發 onShow onShow: function (options) { }, //當小程式從前臺進入後臺,會觸發 onHide onHide: function () { } })
我們可以在微信開發者工具來模擬前臺切入後臺,後臺切入前臺時觸發的函數的過程。
如果沒有在導航工具列看到切後臺的選項,可以在進行如下操作:
找到工具列管理,勾選上切後臺即可。
頁面生命週期函數:特指小程式中,每個頁面從載入 -> 渲染 -> 銷燬期間依次呼叫的那些函數
小程式的頁面生命週期需要在頁面的.js檔案中進行宣告
//頁面.js檔案 Page({ onLoad : function(options){ }, //監聽頁面載入,一個頁面只呼叫一次 onShow : function() { }, //監聽頁面顯示 onReady : function() { }, //監聽頁面初次渲染完成,一個頁面只呼叫一次 onHide : function() { }, //監聽頁面隱藏 onUnload: function() { } //監聽頁面解除安裝,一個頁面只呼叫一次 })
元件生命週期會在講解元件方面的時候講解。
WXS(Wei Script)是小程式獨有的一套指令碼語言,結合WXML,可以構建出頁面的結構。
wxml中無法呼叫在頁面的.js中定義的函數,但是wxml中可以呼叫wxs中定義的函數,因此,小程式中的wxs的典型應用場景就是“過濾器”。
wxs語法類似於JavaScript,但 wxs 和 JavaScript 是兩種不同的兩種語言。
wxs有自己的資料型別:
number數值型別、string字串型別、boolean布林型別、object物件型別、function函數型別
array陣列型別、date日期型別、regexp正則
wxs不支援類似於 ES6 以上的語法形式:
不支援:let、const、解構賦值、展開運運算元、箭頭函數、物件屬性簡寫等
支援:var 定義變數、普通function函數等類似於ES5的語法
wxs遵循CommonJS規範:
module物件、require()函數、module.exports物件
wxs程式碼可以編寫在 wxml 檔案中的<wxs>標籤內,就像JavaScript程式碼可以編寫在html檔案中的<script>標籤一樣。
wxml檔案中的每個<wxs></wxs>標籤,必須提供module屬性,用來指定當前 wxs 的模組名稱,方便在wxml中存取模組中的成員。
<view>{{wxs.toUpper(username)}}</view> <wxs module="wxs"> //將模組方法暴露出去 module.exports.toUpper = function(str){ return str.toUpperCase() } </wxs>
wxs程式碼可以在以.wxs為字尾名的檔案內,和JavaScript可以編寫在.js為字尾名的檔案中一樣。
//在.wxs檔案下寫如下程式碼,在.wxs檔案中同樣要將檔案暴露出去 function toLower(str){ return str.toLowerCase() } module.exports = { toLower:toLower }
在wxml中引入外聯的 wxs 指令碼時,必須為 <wxs> 標籤新增 module (用來指定模組的名稱) 和 src (用來指定要引入的指令碼路徑,且必須是相對路徑) 屬性。
與JS關係:
為了降低wxs(WeiXin Script)的學習成本,wxs語言在設計時借鑑了大量的JavaScript語法。但在本質上,wxs 和 JavaScript是完全不同的兩種語言!
不能作為元件的事件回撥:
wxs典型的應用場景就是過濾器,經常配合Mustache語法進行使用,但是,在wxs中定義的函數不能作為元件的事件回撥函數。
隔離性:
指的是wxs的執行環境和其他JavaScript程式碼是隔離的,wxs不能呼叫js中定義的函數,wxs不能呼叫小程式提供的API
效能好:
在iOS裝置上,小程式內的WXS會比JavaScript程式碼快2~20倍。
在安卓裝置上,兩者執行效率無差異
補充:適用場景
<wxs module="m1"> // 首字母大寫 var capitalize = function(value) { if (!value) return '' value = value.toString() return value.charAt(0).toUpperCase() + value.slice(1) } module.exports = { capitalize: capitalize } </wxs> <view class="content"> <view class="text-area"> <!-- title 為當前頁面 data 中定義的初始資料 --> <text class="title">{{m1.capitalize(title)}}</text> </view> </view>
到此這篇關於微信小程式生命週期和WXS使用的文章就介紹到這了,更多相關小程式生命週期和WXS使用內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45