페이지 간 커뮤니케이션을 위한 강력한 도구
애플릿에 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 ( ) {
}
} ) )
설명하다
위의 두 단계를 완료한 후 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
에 props를 미리 삽입하세요.기여한 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-weapp-mobx
심층적으로 사용한 후 데이터 상태 문제가 발생했습니다. 동기화가 쉽게 해결되었습니다. 최종 프로젝트가 성공적으로 시작되었습니다.
$ npm login --registry https://registry.npmjs.org/
$ npm publish
MIT