ページ間のコミュニケーションのための強力なツール
mobx データ レイヤー ドライバーをアプレットに追加する
現在のバージョン: 0.2.0
mobx のバージョンに依存: 4.9.2
ミニ プログラムは、npm を使用したサードパーティ パッケージのインストールをすでにサポートしています。詳細については、「npm サポート」を参照してください。
npm install wechat-weapp-mobx -S --production
コード ライブラリをローカルに複製またはダウンロードします。
git clone https://github.com/dao42/wechat-weapp-mbox
たとえば、 dist/mobx.js
、 dist/diff.js
、およびdist/observer.js
ファイルをミニ プログラム プロジェクトに直接コピーします (以下では、すべてのサードパーティ パッケージを libs ディレクトリにインストールするとします)。
cd wechat-weapp-mobx
cp mobx.js <小程序根目录> /libs
cp diff.js <小程序根目录> /libs
cp observer.js <小程序根目录> /libs
上記のコマンドは、パッケージをミニ プログラムの<小程序根目录>/libs
ディレクトリにコピーします。
データ層を保存するための<小程序根目录>/stores
ディレクトリを作成します。
mobx ストアを作成する
// <小程序根目录>/stores/todoStore.js
// 手动安装时引入的路径
// var extendObservable = require('../../libs/mobx').extendObservable;
// npm 包安装引入的路径
var extendObservable = require ( 'wechat-weapp-mobx/mobx' ) . extendObservable ;
var TodoStore = function ( ) {
extendObservable ( this , {
// observable data
todos : [ ] ,
todoText : 'aaa' ,
// computed data
get count ( ) {
return this . todos . length ;
}
} ) ;
// action
this . addTodo = function ( title ) {
this . todos . push ( { title : title } ) ;
}
this . removeTodo = function ( ) {
this . todos . pop ( ) ;
}
}
module . exports = {
default : new TodoStore ,
}
バインドページ連携イベント
// <小程序根目录>/pages/index/index.js
// 手动安装时引入的路径
// var observer = require('../libs/observer').observer;
// npm 包安装引入的路径
var observer = require ( 'wechat-weapp-mobx/observer' ) . observer ;
// 关键, 监控页面事件, 让 mobx 有机会更新页面数据
Page ( observer ( {
props : {
todoStore : require ( '../stores/todoStore' ) . default ,
} ,
// your other code below
onLoad : function ( ) {
}
} ) )
説明する
上記2つの手順が完了すると、wxmlのprops.todoStore
使ってアクセスできるようになり、自動的にデータ連携が行われます。
// <小程序根目录>/pages/index/index.wxml
< view > { { props . todoStore . todoText } } </ view >
自動データ連携
ストア内のデータはページ間で同時にアクセスでき、データが更新されるとページも自動更新されます。これにより、多くのロジック コードが節約されます。
Component ( observerComponment ( {
props : {
todoStore : require ( '../stores/todoStore' ) . default
}
} ) )
例を直接確認してください: wechat-weapp-mobx-todos-npm
observerComponment
構文の使用をサポートします。page.data
に挿入します。Danney の貢献に感謝します。
詳しい使用例については、wechat-weapp-mobx-todos-npmを参照してください。
実際のテスト バージョンの場合は、次のリポジトリを複製し、ミニ プログラム開発ツールを使用してプレビューを有効にしてください。
git clone https://github.com/dao42/wechat-weapp-mobx-todos-npm.git
詳しい使用例については、wechat-weapp-mobx-todos を参照してください。
実際のテスト バージョンの場合は、次のリポジトリを複製し、ミニ プログラム開発ツールを使用してプレビューを有効にしてください。
git clone https://github.com/dao42/wechat-weapp-mobx-todos.git
Ballu - リアルタイムバスケットボール得点ツール
コメント: このプロジェクトは非常に「複雑」な小さなプログラムです。wechat
wechat-weapp-mobx
データ ドライバー層として詳細に使用した後、プロジェクトの多くのページで WebSocket を使用してデータ更新を行う必要があります。同期は簡単に解決できます。最終プロジェクトは正常に起動されました。
$ npm login --registry https://registry.npmjs.org/
$ npm publish
マサチューセッツ工科大学