เครื่องมืออันทรงพลังสำหรับการสื่อสารระหว่างเพจ
เพิ่มไดรเวอร์ชั้นข้อมูล 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
ล่วงหน้าเพื่อหลีกเลี่ยงการเรนเดอร์เพจช้าเกินไปขอบคุณ Danney สำหรับการสนับสนุนของเขา
สำหรับตัวอย่างการใช้งานโดยละเอียด โปรดดูที่: wechat-weapp-mobx-todos-npm
สำหรับเวอร์ชันทดสอบจริง โปรดโคลน repo ต่อไปนี้และใช้เครื่องมือพัฒนามินิโปรแกรมเพื่อเปิดใช้งานการแสดงตัวอย่าง:
git clone https://github.com/dao42/wechat-weapp-mobx-todos-npm.git
สำหรับตัวอย่างการใช้งานโดยละเอียด โปรดดูที่: wechat-weapp-mobx-todos
สำหรับเวอร์ชันทดสอบจริง โปรดโคลน repo ต่อไปนี้และใช้เครื่องมือพัฒนามินิโปรแกรมเพื่อเปิดใช้งานการแสดงตัวอย่าง:
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
เอ็มไอที