أداة قوية للتواصل بين الصفحات
قم بإضافة برنامج تشغيل طبقة بيانات 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 ( ) {
}
} ) )
يوضح
بعد إكمال الخطوتين أعلاه، يمكنك الوصول إليه باستخدام props.todoStore
في wxml، وسيعمل ربط البيانات تلقائيًا.
// <小程序根目录>/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
مقدمًا لتجنب أن يكون عرض الصفحة بطيئًا للغاية.شكرا لداني لمساهمته.
للحصول على أمثلة مفصلة للاستخدام، يرجى الرجوع إلى: 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 - أداة لتسجيل أهداف كرة السلة في الوقت الحقيقي
تعليق: هذا المشروع عبارة عن برنامج صغير "معقد" للغاية. تحتاج العديد من صفحات المشروع إلى استخدام websocket لمزامنة تحديثات البيانات مع الخادم. بعد استخدام
wechat-weapp-mobx
كطبقة برنامج تشغيل البيانات، تظهر مشكلة حالة البيانات يمكن حل المزامنة بسهولة. تم إطلاق المشروع النهائي بنجاح.
$ npm login --registry https://registry.npmjs.org/
$ npm publish
معهد ماساتشوستس للتكنولوجيا