All Projects → dao42 → Wechat Weapp Mobx

dao42 / Wechat Weapp Mobx

微信小程序(wechat weapp) mobx 绑定, 跨页面通信的利器, 现已发布npm包

Projects that are alternatives of or similar to Wechat Weapp Mobx

Wemark
微信小程序Markdown渲染库
Stars: ✭ 1,159 (+457.21%)
Mutual labels:  wechat, weapp
Wechat Weapp Movie
🎬电影推荐 - 微信小程序
Stars: ✭ 1,355 (+551.44%)
Mutual labels:  wechat, weapp
Weapp Qrcode
weapp.qrcode.js 在 微信小程序 中,快速生成二维码
Stars: ✭ 1,194 (+474.04%)
Mutual labels:  wechat, weapp
Weapp Demo
微信小程序示例教程,案例涉及某瓣,所以下线了:https://github.com/zce/weapp-douban
Stars: ✭ 2 (-99.04%)
Mutual labels:  wechat, weapp
We Validator
💯 简单灵活的表单验证插件,支持小程序、浏览器以及Nodejs端使用
Stars: ✭ 180 (-13.46%)
Mutual labels:  wechat, weapp
Xiaochengxu demos
小程序优秀项目源码汇总,每个项目都有图有源码,零基础学微信小程序,小程序表格,小程序视频,小程序视频弹幕,小程序仿天猫大转盘抽奖等源码,小程序云开发,小程序发邮件,小程序支付,微信支付,持续更新。。。
Stars: ✭ 855 (+311.06%)
Mutual labels:  wechat, weapp
Wxmlify
一个轻量快速的插件,帮助你在微信小程序中显示富文本编辑器生成的HTML。
Stars: ✭ 93 (-55.29%)
Mutual labels:  wechat, weapp
Iview Weapp
一套高质量的微信小程序 UI 组件库
Stars: ✭ 6,145 (+2854.33%)
Mutual labels:  wechat, weapp
Omi
Front End Cross-Frameworks Framework - 前端跨框架跨平台框架
Stars: ✭ 12,153 (+5742.79%)
Mutual labels:  wechat, weapp
We Cropper
微信小程序图片裁剪工具
Stars: ✭ 1,972 (+848.08%)
Mutual labels:  wechat, weapp
Weapp Bmscore
a weapp to count badminton game score
Stars: ✭ 17 (-91.83%)
Mutual labels:  weapp, mobx
Weapp Mark
🔥 豆瓣类影视查询记录小程序,附学习笔记
Stars: ✭ 187 (-10.1%)
Mutual labels:  wechat, weapp
Masterwechatapp
『微信小程序』优秀教程、轮子、开源项目 资源汇总
Stars: ✭ 826 (+297.12%)
Mutual labels:  wechat, weapp
Tina
💃 一款轻巧的渐进式微信小程序框架
Stars: ✭ 1,153 (+454.33%)
Mutual labels:  wechat, weapp
Miniapp
微信小程序服务端 SDK (for Golang)
Stars: ✭ 815 (+291.83%)
Mutual labels:  wechat, weapp
Wechat Webapp Douban Movie
微信小程序开发之豆瓣电影
Stars: ✭ 84 (-59.62%)
Mutual labels:  wechat, weapp
Wechat Weapp Mapdemo
微信小程序开发mapdemo,地图导航、marker标注
Stars: ✭ 491 (+136.06%)
Mutual labels:  wechat, weapp
Wewechat
💬 Unofficial WeChat client built with React, MobX and Electron.
Stars: ✭ 5,618 (+2600.96%)
Mutual labels:  wechat, mobx
Weapp Qrcode Base64
微信小程序生成二维码的插件,基于base64编码输出二维码,不依赖canvas
Stars: ✭ 100 (-51.92%)
Mutual labels:  wechat, weapp
Wxapp Webpack Plugin
📦 微信小程序 webpack 插件
Stars: ✭ 185 (-11.06%)
Mutual labels:  wechat, weapp

微信小程序 mobx 绑定( wechat weapp mobx )

页面间通信的利器

为你的小程序添加mobx数据层驱动

当前版本: 0.2.0

依赖 mobx 版本: 4.9.2

安装

方式一: npm 包( 推荐 )

小程序已经支持使用 npm 安装第三方包,详见 npm 支持

npm install wechat-weapp-mobx -S --production

方式二: 手动安装

  1. clone或者下载代码库到本地:

     git clone https://github.com/dao42/wechat-weapp-mbox
    
  2. dist/mobx.js, dist/diff.jsdist/observer.js 文件直接拷贝到小程序的工程中,例如 (下面假设我们把第三方包都安装在libs目录下):

     cd wechat-weapp-mobx
     cp mobx.js <小程序根目录>/libs
     cp diff.js <小程序根目录>/libs
     cp observer.js <小程序根目录>/libs
    

    上面的命令将包拷贝到小程序的<小程序根目录>/libs目录下

  3. 创建一个 <小程序根目录>/stores 目录, 存放数据层.

使用( 使用 ES5 语法 )

  1. 创建 mobx 的 stores

    // <小程序根目录>/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,
    }
    
  2. 绑定页面联动事件

    // <小程序根目录>/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(){
      }
    }))
    
  3. 说明

    完成上述两步之后,你就可以在 wxml 中用 props.todoStore 这种方式来访问了, 并且数据联动已经自动工作.

    // <小程序根目录>/pages/index/index.wxml
    <view>{{props.todoStore.todoText}}</view>
    
  4. 数据自动联动

stores 中的数据可以跨页面同时访问,并且数据更新后,页面也会自动更新。从而节省大量逻辑代码。

组件中使用

  • 绑定组件联动事件
Component(observerComponment({
  props: {
    todoStore: require('../stores/todoStore').default
  }
}))

ES6 语法示例

请直接查看示例: wechat-weapp-mobx-todos-npm

版本更新记录

0.2.1

  • 支持组件中使用 observerComponment 语法

0.2.0

  • 优化:提前将 props 注入 page.data,避免页面渲染过慢。

0.1.9

  • (稳定性)经一段时间验证,项目稳定支持 mobx 4.9.2 版本。
  • 优化:修复一个可能引发联动问题的 observer 问题。
  • 优化:调整 Unload callback 执行顺序。
  • 推荐 0.1.8 的用户升级至 0.1.9。

0.1.8

  • (重大)正式升级 mobx 至 4.9.2 版本,支持最新的 mobx 装饰器语法。
  • 尝试性支持 ES6 语法,如有bug,请及时反馈。

感谢 Danney 的贡献。

0.1.7 (勿用)

  • 尝试性升级 mobx 至 4.9.2 版本,增加新的装饰器语法。
  • 但发现 mobx 4.9.2 版本下,props 数据对象会被小程序框架错误清空。

0.1.6

  • 同步更新 npm 包至 0.1.6

0.1.5

  • 优化 toJSWithGetter 接口, 性能再次提升2倍.
  • 调整目录, 发布 npm 包.

0.1.4

  • 增加 diff 流程, 大幅提高触发性能

0.1.3

  • 重构 autorun 机制, 提高触发性能.

0.1.2

  • 重构 toJS 逻辑, 支持嵌套的 computed value 显示.
  • 支持 props 已有的属性值观测, 修改可以触发更新视图.

0.1.1

  • 优化性能, 避免重复的 mobx toJS 对象.
  • 添加版本号支持.

0.1.0

  • 实现 mobx 核心支持.

示例( npm 整合,ES6 语法演示 )

详细的使用例子可以参照: wechat-weapp-mobx-todos-npm

真机实测版请clone下面这个repo,用小程序开发工具开启预览:

git clone https://github.com/dao42/wechat-weapp-mobx-todos-npm.git

示例( 手动安装 )

详细的使用例子可以参照: wechat-weapp-mobx-todos

真机实测版请clone下面这个repo,用小程序开发工具开启预览:

git clone https://github.com/dao42/wechat-weapp-mobx-todos.git

实际案例

Ballu -- 一个实时的篮球计分工具

点评: 此项目是一个非常 "复杂" 的小程序, 项目多处页面需要使用 websocket 与服务端进行同步的数据更新, 深度使用 wechat-weapp-mobx 作为数据驱动层后, 数据状态同步的问题轻松化解. 最终项目成功上线.

ballu

开发( 发布 npm 版本 )

$ npm login --registry https://registry.npmjs.org/
$ npm publish

协议( LICENSE )

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].