Alat yang ampuh untuk komunikasi antar halaman
Tambahkan driver lapisan data mobx ke applet Anda
Versi saat ini: 0.2.0
Tergantung pada versi mobx: 4.9.2
Program mini sudah mendukung penggunaan npm untuk menginstal paket pihak ketiga. Untuk detailnya, lihat dukungan npm.
npm install wechat-weapp-mobx -S --production
Kloning atau unduh pustaka kode secara lokal:
git clone https://github.com/dao42/wechat-weapp-mbox
Salin file dist/mobx.js
, dist/diff.js
dan dist/observer.js
langsung ke proyek program mini, misalnya (misalkan di bawah ini kita menginstal semua paket pihak ketiga di direktori libs):
cd wechat-weapp-mobx
cp mobx.js <小程序根目录> /libs
cp diff.js <小程序根目录> /libs
cp observer.js <小程序根目录> /libs
Perintah di atas menyalin paket ke direktori <小程序根目录>/libs
program mini.
Buat direktori <小程序根目录>/stores
untuk menyimpan lapisan data.
Buat toko 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 ,
}
Mengikat peristiwa tautan halaman
// <小程序根目录>/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 ( ) {
}
} ) )
menjelaskan
Setelah menyelesaikan dua langkah di atas, Anda dapat mengaksesnya menggunakan props.todoStore
di wxml, dan tautan data akan bekerja secara otomatis.
// <小程序根目录>/pages/index/index.wxml
< view > { { props . todoStore . todoText } } </ view >
Tautan data otomatis
Data di penyimpanan dapat diakses secara bersamaan di seluruh halaman, dan ketika data diperbarui, halaman tersebut akan diperbarui secara otomatis. Ini menghemat banyak kode logika.
Component ( observerComponment ( {
props : {
todoStore : require ( '../stores/todoStore' ) . default
}
} ) )
Silakan cek contohnya langsung: wechat-weapp-mobx-todos-npm
observerComponment
dalam komponenpage.data
terlebih dahulu untuk menghindari rendering halaman menjadi terlalu lambat.Terima kasih kepada Danney atas kontribusinya.
Untuk contoh penggunaan terperinci, silakan merujuk ke: wechat-weapp-mobx-todos-npm
Untuk versi pengujian sebenarnya, harap kloning repo berikut dan gunakan alat pengembangan program mini untuk mengaktifkan pratinjau:
git clone https://github.com/dao42/wechat-weapp-mobx-todos-npm.git
Untuk contoh penggunaan terperinci, silakan merujuk ke: wechat-weapp-mobx-todos
Untuk versi pengujian sebenarnya, harap kloning repo berikut dan gunakan alat pengembangan program mini untuk mengaktifkan pratinjau:
git clone https://github.com/dao42/wechat-weapp-mobx-todos.git
Ballu - alat penilaian bola basket waktu nyata
Komentar: Proyek ini adalah program kecil yang sangat "kompleks". Banyak halaman proyek perlu menggunakan websocket untuk menyinkronkan pembaruan data dengan server. Setelah menggunakan
wechat-weapp-mobx
sebagai lapisan driver data secara mendalam, masalah status data sinkronisasi dapat dengan mudah diselesaikan.
$ npm login --registry https://registry.npmjs.org/
$ npm publish
MIT