小程序MobX创建store并实现全局数据共享

这篇具有很好参考价值的文章主要介绍了小程序MobX创建store并实现全局数据共享。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

查看小程序根目录中是否存在package.json文件

在项目根目录运行cmd

没有package.json文件输入npm init -y初始化一下,初始化一个包管理

安装MobX

npm install --save mobx-miniprogram@4.13.2 mobx-miniprogram-bindings@1.2.1

小程序菜单栏工具–构建npm

根目录创建store文件夹,在文件夹下新建store.js ,这个文件是专门用来创建store的实例对象

import {observable} from 'mobx-miniprogram'
export const store = observable({
  userid: 123,
  username: 'as',
  numA: 1,
  numB: 2,
  // 计算属性
  get sum() {
    return this.numA + this.numB
  },
  // action方法,用来修改store中数据
  UpdateNum1: action(function (step) {
    this.numA += step
  }),
  UpdateNum2: action(function (step) {
    this.numB += step
  })
})

在页面使用store数据

.js文件

import {createStoreBindings} from 'mobx-miniprogram-bindings'
import {store} from '../../store/store'
//在onload生命周期中挂载
  onLoad: function (options) {
    this.storeBindings = createStoreBindings(this, {
      store,
      // 数据以及计算属性放fields里
      fields: ['numA', 'numB', 'userid', 'username', 'sum'],
      actions: ['UpdateNum1', 'UpdateNum2']
    })
  },
  //在onUnload中清理
    onUnload: function () {
    // 数据清理
    this.storeBindings.destroyStoreBindings()
  },

此时可以在页面中用{{}}使用store中的数据

<view>userid:{{userid}}</view>
<view>username:{{username}}</view>

小程序MobX创建store并实现全局数据共享,微信小程序,小程序,javascript,前端,npm

使用store中的action方法

页面绑定一个方法,并且使用data-*进行传参

<view>{{numA}}+{{numB}}={{sum}}</view>
<van-button bindtap="change" data-newA="{{1}}">numA+1</van-button>
<van-button bindtap="change" type='warning' data-newA="{{-1}}">numA-1</van-button>

小程序MobX创建store并实现全局数据共享,微信小程序,小程序,javascript,前端,npm
在js中使用

  change(e) {
    console.log(e);
    const newA = e.target.dataset.newa
    this.UpdateNum1(newA)
  },

打印
小程序MobX创建store并实现全局数据共享,微信小程序,小程序,javascript,前端,npm

点击之后就可以是页面数据+1或者-1
小程序MobX创建store并实现全局数据共享,微信小程序,小程序,javascript,前端,npm
小程序MobX创建store并实现全局数据共享,微信小程序,小程序,javascript,前端,npm

在组件中使用store中的数据

在根目录中新建components文件夹,在文件夹下新增number文件夹,
在number文件夹下右键点击新增component,然后命名,会自动生成四个同名文件

小程序MobX创建store并实现全局数据共享,微信小程序,小程序,javascript,前端,npm

在组件的js文件中引入

// components/numbers/numbers.js
import { storeBindingsBehavior} from 'mobx-miniprogram-bindings'
import {store} from '../../store/store'

//在Component中挂载
Component({
  // 通过storeBindingsBehavior来实现自动绑定
  behaviors: [storeBindingsBehavior],
  storeBindings: {
    // 数据源
    store,
    //fields中写store中的数据以及计算属性
    fields: {
      // 前面是映射到组件中的名字,可以自定义,也可以填写一致
      //后面是store中的名字,字符串形式
      n1: 'numA',
      n2: 'numB',
      sumCount: 'sum'
    },
    //actions写store中的action方法
    actions: {
      UpdateNum2: 'UpdateNum2'
    }
  },
})

页面中{{}}来使用store中的数据

页面绑定一个方法,并且使用data-*进行传参

<!-- 组件中使用store数据 -->
<view>{{n1}}+{{n2}}={{sumCount}}</view>
<van-button bindtap="HandelNum" data-newB="{{1}}">numB+1</van-button>
<van-button bindtap="HandelNum" type='warning' data-newB="{{-1}}">numB-1</van-button>

在组件js文件中定义HandelNum方法

Component({
  /**
   * 组件的方法列表写在Component中的methods下
   */
  methods: {
    HandelNum(e) {
      console.log(e);
      this.UpdateNum2(e.target.dataset.newb)
    }
  }
})

小程序MobX创建store并实现全局数据共享,微信小程序,小程序,javascript,前端,npm

在页面中使用该组件

  1. 在app.json中定义全局组件
"usingComponents": {
    "my-numbers": "/components/numbers/numbers"
    "van-button": "@vant/weapp/button/index"
  }
  1. 在页面中使用组件
<my-numbers></my-numbers>

小程序MobX创建store并实现全局数据共享,微信小程序,小程序,javascript,前端,npm
3. 点击按钮可实现数据+1 -1
小程序MobX创建store并实现全局数据共享,微信小程序,小程序,javascript,前端,npm
小程序MobX创建store并实现全局数据共享,微信小程序,小程序,javascript,前端,npm文章来源地址https://www.toymoban.com/news/detail-569424.html

到了这里,关于小程序MobX创建store并实现全局数据共享的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序全局数据共享

    全局数据共享(又叫做:状态管理)是为了解决组件之间数据共享的问题。 在小程序中,可使用mobx-miniprogram配合mobx-miniprogram-bindings实现全局数据共享mobx-miniprogram用来创建Store实例对象 mobx-miniprogram-bindings用来把Store中的共享数据或方法,绑定到组件或页面中使用  npm install --s

    2024年02月11日
    浏览(57)
  • 微信小程序--》小程序—全局数据共享和分包

    🏍️作者简介:大家好,我是亦世凡华、渴望知识储备自己的一名在校大学生 🛵个人主页:亦世凡华、 🛺系列专栏:微信小程序 🚲座右铭:人生亦可燃烧,亦可腐败,我愿燃烧,耗尽所有光芒。 👀引言        ⚓经过web前端开发的学习,相信大家对于前端开发有了一

    2024年02月02日
    浏览(41)
  • 微信小程序实现全局参数共享,且实现全局参数变化时的页面间通信

    首先,微信小程序中并没有提供直接的全局事件系统来监听全局参数的变化。因此,我们需要采用其他方式来达到这一目的。一种常见的方法是使用全局变量和事件监听来模拟全局事件系统。 1. 定义全局变量和事件 在 app.js 中定义全局变量,并提供一个方法来更新这些变量并

    2024年04月15日
    浏览(47)
  • 在uni-app使用vue3进行store全局数据共享

    在uni-app中使用vue3进行store的全局数据共享,网上文章太杂了,记录一下自己写的一个最简单易懂的例子,以供自己后面需要用到时候可以最直观的知道到底怎么实现 在index.js中写入代码如下(示例): uni-app好像内置vuex,不需要额外下载,如果记错了的话就得先去下载好 代

    2024年02月09日
    浏览(85)
  • 微信小程序中的全局数据共享(状态管理)使用介绍

    开发工具:微信开发者工具Stable 1.06  微信小程序全局状态是指可以在不同页面之间共享的数据或状态。 它可以存储用户的登录状态、个人信息、全局配置信息等。 在资源管理器的空白地方点右键,选择“在外部终端窗口中打开”,注意要用 管理员权限 打开 输入 npm init -

    2024年02月14日
    浏览(40)
  • 小程序全局变量管理-mobx引入与使用

    背景: 对于全局变量操作,如果不规范使用很容易产生意想不到的问题,使用mobx对全局变量进行管理,能够规范代码操作,使程序变得简单高效。 代码使用: 1)定义全局变量 2)页面1中引用 该变量 page1.ts page1.wxml 3)页面2中更改该变量。 4)测试。页面1跳转至页面2,页面

    2024年02月19日
    浏览(39)
  • 微信小程序开发实战 ②③(全局数据共享)

    @作者 : SYFStrive   @博客首页 : HomePage 📜: 微信小程序 📌: 个人社区(欢迎大佬们加入) 👉: 社区链接🔗 📌: 觉得文章不错可以点点关注 👉: 专栏连接🔗 💃: 感谢支持,学累了可以先看小段由小胖给大家带来的街舞 👉 微信小程序 (🔥) 分包指的是把一个完整的

    2024年02月09日
    浏览(40)
  • 微信小程序创建自定义全局函数及其调用方法

    一:创建小程序全局函数 1:在微信开发工具中增加一个JS文档, 放入全局全局函数 代码说明 1:全局函数只能放var定义的变量下,本例的var 变量为myFunction 格式为: var myFunction={ 在这里编写你的全局函数 } 你可以把myFunction理解为一个类,你的全局函数理解放类中的一个方法

    2024年02月09日
    浏览(45)
  • 微信小程序通过 wxministore 实现类似于vuex的全局装填数据管理

    首先 我们打开终端 引入依赖 然后 如果你是新版开发者工具 就 构建一下 如果你是 老版本的 微信开发者工具 就打开右上角详情 选择本地管理 勾选 使用 npm 模块 然后 在根目录下创建一个 store.js 当然建在哪是你自己决定的 反正 后面能引入到就好 然后 store.js 编写代码如下

    2024年02月05日
    浏览(42)
  • 【小程序 - 加强】自定义组件、使用npm包、全局数据共享、分包_05

    目录 一、自定义组件 1. 组件的创建与引用 1.1 创建组件 1.2 引用组件 1.2.1 局部引用组件 1.2.2 全局引用组件 1.2.3 全局引用 VS 局部引用 1.2.4 组件和页面的区别 2. 样式 2.1 组件样式隔离 2.2 组件样式隔离的注意点 2.3 修改组件的样式隔离选项 2.4 styleIsolation 的可选值 3. 数据

    2024年02月07日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包