要約: Mobike ミニプログラムは、WeChat ミニプログラムの初日に正式にリリースされ、Weibo メディアの友人界に衝撃を与えました。この記事では主に、技術的な方向性の概要と、この開発サイクル中に段階的に学習から進歩に移行する方法について説明します。 ... ... ... ...
Mobike ミニ プログラムは、WeChat ミニ プログラムの開始初日に正式にリリースされ、友人の Weibo メディア サークルを圧倒しました。この記事では主に、技術的な方向性の概要と、この開発サイクル中に段階的に学習から進歩に移行する方法について説明します。
WeChat アプレットには HTML の一般的なタグはありませんが、 React
の WeChat カスタム コンポーネント(マップ
etcReact
的微信自定义组件,比如view
、text
、map
等
没有window
变量,但微信提供了wx
全局方法集
没有a
标签链接,不可嵌套iframe
window
変数ですが、WeChat は wx
グローバル メソッド セット🎜🎜🎜いいえ a
タグ リンク、入れ子にすることはできませんiframe
イベント バインディングと条件付きレンダリングは似ていますAngular
,全部写在WXML
中
数据绑定采用Mustache
双大括号语法
无法操作DOM
,通过改变page data
(类似React
的state)来改变视图展现
所以如果你熟悉以上提到的所有前端技术栈,开发微信小程序你会得心应手。
你可以理解小程序就是一个单页面的H5网页,所有元素的加载都是一次性的,这就引来了生命周期的概念:
首次打开,小程序初始化
小程序初始化完成后,触发onShow
事件
小程序被切换到后台(熄屏,切换APP等),触发onHide
Mustache
二重中括弧構文 🎜🎜🎜🎜 は操作できませんDOM
、ページ データ
(反応
状態) ビューのプレゼンテーションを変更します🎜🎜したがって、上記のすべてのフロントエンド テクノロジー スタックに精通している場合は、WeChat ミニ プログラムを問題なく開発できるでしょう。 🎜
ミニプログラムが単一であることがわかります。ページ H5 Web ページでは、すべての要素が一度読み込まれるため、ライフ サイクルの概念が生まれます: 🎜
🎜
onShow
イベント 🎜🎜🎜🎜 アプレットがバックグラウンドに切り替わり (画面オフ、アプリの切り替えなど)、非表示
🎜アプレットがバックグラウンドからフォアグラウンドに切り替わり、再びトリガーされますonShow
onShow
小程序出错,触发onError
每个页面也有自己的生命周期:
注意:在微信6.5.3版本中,部分Android机触发不了onLoad
事件,可以用onReady
エラー
注: WeChat バージョンの場合6.5.3、一部の Android マシンをトリガーできません
onShow
でビジネス ロジックを作成します: onShow
事件,所以可以在onShow
中写业务逻辑:// Page A // 开锁成功后,跳转到Page B wx.redirectTo({ url: "/pages/riding/index" })
// Page B Page({ onShow() { // 检查骑行状态 } } })
但更合理的应该是利用事件广播来处理:
const broadcast = require("libs/broadcast") // 先注册事件 broadcast.on("check_ride_state", () => { // 检查骑行状态 })
const broadcast =require("libs/broadcast") // Page A // 开锁成功后,触发事件,再跳转到Page B broadcast.fire("check_ride_state") wx.redirectTo({ url: "/pages/riding/index" })
根目录的app.js
很有用,根目录的app.js
很有用,根目录的app.js
很有用。
因为在它内部注册的变量或方法,都是可以被所有页面获取到,所以利用它也可以处理上面所述的跨页面事件触发问题。而且可以注册globalData
供所有页面取用,例如可以把systemInfo
直接注册到globalData
// app.js const systemInfo = wx.getSystemInfoSync() App({ globalData: { systemInfo } })
// Page A const { systemInfo } = getApp().globalData
index.wxml "map" controls="{{controls}}" style="{{style}}">map> index/index.js
const indexStyle = "width: 750rpx; height: 1260rpx" const rideStyle = "width: 750rpx; height: 960rpx" Page({ data: { style: indexStyle }, onUnlock() { this.setData({ style: rideStyle }) } } })
app.js
は非常に便利です。ルートディレクトリ内 -sizing: border-box; font-family: 'Source Code Pro'、Consolas、Menlo、Monaco、'Courier New'、font-size: 0.93em; );padding: 2px 4px; border-radius: 3px; background-color: rgb(249, 242, 244);">app.js は非常に便利です。 globalData
はすべてのページで使用できます。たとえば、 style ="box-sizing: border-box; font-family: 'Source Code Pro'、Consolas、Menlo、Monaco、'Courier New'、monospace; font-size: 0.93em; color: rgb(199, 37, 78 ) ; パディング: 2px 4px; 背景色: rgb(249, 242, 244);">systemInfo
は globalData
なので、すべてのページで取得する必要はありません: 🎜rrreee🎜 ページで取得: 🎜// Page A const { systemInfo } = getApp().globalData
小程序运行在微信平台,而且可能和众多小程序“共享运行内存”,可想而知,单个小程序的性能极可能遇到瓶颈而Crash或被微信主动销毁!
比如在摩拜单车有这个场景:
首页展示地图找车,扫码成功后跳转到骑行地图。
简单的逻辑,直接两个页面,两个map
组件切换就可以搞定。实际测试场景中,iOS的确如预期,一切正常,但是在Android下,就很有可能会使得小程序Crash,扫码成功后直接退出了小程序。
解决办法就是, 整个小程序只维护一个map
组件 ,通过不同的State
来改变map的不同展现:
index.wxml "map" controls="{{controls}}" style="{{style}}">map> index/index.js
const indexStyle = "width: 750rpx; height: 1260rpx" const rideStyle = "width: 750rpx; height: 960rpx" Page({ data: { style: indexStyle }, onUnlock() { this.setData({ style: rideStyle }) } } })
这样就成功解决了部分Android设备小程序Crash的问题。
以上がWeChatミニプログラム開発技術の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。