搜尋
首頁頭條學以致用:摩拜單車微信小程式開發技術總結

學以致用:摩拜單車微信小程式開發技術總結

Feb 22, 2017 am 09:22 AM
微信小程式開發摩拜單車

前言

摩拜單車小程式已於微信小程式上線第一天正式發布,刷爆微博媒體朋友圈。 本文主講微信小程式開發的經驗總結以及如何一步步從學習到進階。

思考轉變

微信小程式沒有HTML的常用標籤,而是類似React的微信自訂元件,例如view、text、 map等

沒有window變量,但微信提供了wx全域方法集

沒有a標籤鏈接,不可嵌套iframe

事件綁定和條件渲染類似Angular,全部寫在WXML中

資料綁定採用Mustache雙大括號語法

#無法操作DOM,透過改變page data(類似React的state)來改變視圖展現

#所以如果你熟悉以上提到的所有前端技術堆疊,開發微信小程式你會得心應手。

小程式開發手冊參考:微信小程式開發文件

##生命週期

你可以理解小程式就是一個單一頁面的H5網頁,所有元素的載入都是一次性的,這就引來了生命週期的概念:

學以致用:摩拜單車微信小程式開發技術總結

首次打開,小程式初始化

小程式初始化完成後,觸發onShow事件

小程式被切換到後台(熄屏,切換APP等),觸發onHide

小程式從後台切換到前台,再次觸發onShow

小程式出錯,觸發onError

每個頁面也有自己的生命週期:

640.webp (1).jpg

注意:在微信6.5.3版本中,部分Android機觸發不了onLoad事件,可以用onReady取代。

事件廣播

「單一頁面結構」的微信小程序,你可以使用事件廣播(統一的事件中心)來註冊和觸發自訂事件,否則到後期事件管理會越來越亂,而且涉及跨頁面傳輸事件,你更需要這種事件觸發機制,可以參考broadcast.js。例如在摩拜單車中有這樣的場景:

掃碼成功後在開鎖頁面A提示開鎖成功,要跳到騎行頁面B並查詢用戶騎行狀態。

如果沒有統一的事件管理中心,你幾乎無法完成這樣的過程,當然,可以用Hack的方式解決。因為跳到頁面B會觸發B的onShow事件,所以可以在onShow中寫業務邏輯:

學以致用:摩拜單車微信小程式開發技術總結

學以致用:摩拜單車微信小程式開發技術總結

但更合理的應該是利用事件廣播來處理:

學以致用:摩拜單車微信小程式開發技術總結

學以致用:摩拜單車微信小程式開發技術總結

#資料中心##根目錄的app .js很有用,根目錄的app.js很有用,根目錄的app.js很有用。

因為在它內部註冊的變數或方法,都是可以被所有頁面取得到,所以利用它也可以處理上面所述的跨頁面事件觸發問題。而且可以註冊globalData供所有頁面取用,例如可以把systemInfo直接註冊到globalData中,這樣就不用在每個頁面都獲取一遍:

學以致用:摩拜單車微信小程式開發技術總結在頁面取得:

學以致用:摩拜單車微信小程式開發技術總結

性能優化

小程式運行在微信平台,而且可能和眾多小程式“共享運行內存”,可想而知,單一小程式的效能極可能遇到瓶頸而Crash或被微信主動銷毀!

例如在摩拜單車有這個場景:

首頁展示地圖找車,掃碼成功後跳到騎行地圖。

簡單的邏輯,直接兩個頁面,兩個map元件切換就可以搞定。在實際測試場景中,iOS的確如預期,一切正常,但是在Android下,就很有可能會使得小程式Crash,掃碼成功後直接退出了小程式。

解決方法就是,整個小程式只維護一個map元件,透過不同的State來改變map的不同展現:

##index.wxml

index/index.js學以致用:摩拜單車微信小程式開發技術總結

#

這樣就成功解決了部分Android裝置小程式Crash的問題。

如果你剛接觸微信小程序,請學習php中文網的微信小程式開發系列影片教學
http://www.php.cn/toutiao-348128 .html

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。