位置: IT常识 - 正文

微信小程序--》小程序—全局数据共享和分包(微信小程序开发一个多少钱)

编辑:rootadmin
微信小程序--》小程序—全局数据共享和分包

推荐整理分享微信小程序--》小程序—全局数据共享和分包(微信小程序开发一个多少钱),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:微信小程序开发公司,微信小程序店铺怎么开,微信小程序店铺怎么开,微信小程序开发公司,微信小程序开发公司,微信小程序店铺怎么开,微信小程序开发公司,微信小程序怎么制作自己的小程序,内容如对您有帮助,希望把文章链接给更多的朋友!

🏍️作者简介:大家好,我是亦世凡华、渴望知识储备自己的一名在校大学生

🛵个人主页:亦世凡华、

🛺系列专栏:微信小程序

🚲座右铭:人生亦可燃烧,亦可腐败,我愿燃烧,耗尽所有光芒。

👀引言

       ⚓经过web前端开发的学习,相信大家对于前端开发有了一定深入的了解,今天我开设了微信小程序专栏,主要想从移动端开发方向进一步发展,而对于我来说写移动端博文的第一站就是小程序开发,希望看到我文章的朋友能对你有所帮助。

目录

🙈全局数据共享

安装 MobX 相关的包

创建Store实例

将 Store 中的成员绑定到页面中

在页面使用 Store 中的成员

将 Store 成员绑定到组件中

在组件中使用 Store 中的成员

🙉分包

分包的项目构成:

分包的加载规则:

分包的体积限制:

创建分包

打包原则

分包的引用原则

独立分包

独立分包的引用原则

分包预下载


🙈全局数据共享

全局数据共享(状态管理)是为了解决组件之间数据共享的问题,开发中常用的全局数据共享方案有:Vuex、Redux、MobX等。

在小程序中,可用 mobx-miniprogram (用来创建 Store 实例对象) 配合 mobx-miniprogram-bindings (用来把 Store 中的共享数据或方法,绑定到组件和页面中使用)实现全局数据共享。

安装 MobX 相关的包

在项目中运行如下命令,安装 MobX相关的包:(注意要启用管理员权限) 安装完成重新构建 npm

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

创建Store实例// 创建store文件夹下的store.js文件,在这个 JS 文件中,专门来创建 Store 的实例对象import {observable,action} from 'mobx-miniprogram'export const store = observable({ // 数据字段 numA:1, numB:2, // 计算属性 get sum(){ return this.numA + this.numB }, // actions 函数,专门来修改 store 中数据的值 updateNum1:action(function(step){ this.numA += step }), updateNum2:action(function(step){ this.numB += step }),})

将 Store 中的成员绑定到页面中// 路径需要相对路径,不然会报错import {createStoreBindings} from '../../miniprogram/miniprogram_npm/mobx-miniprogram-bindings/index'import {store} from '../../store/store'Page({ //生命周期函数--监听页面加载 onLoad(options) { this.storeBindings = createStoreBindings(this,{ store, fields:['numA','numB','sum'], actions:['updateNum1'] }) }, //生命周期函数--监听页面卸载 onUnload() { this.storeBindings.detroyStoreBindings() },})在页面使用 Store 中的成员// .wxml文件<view>{{numA}}+{{numB}}={{sum}}</view><van-button type="primary" bindtap="btnHander1" data-step="{{1}}">numA+1</van-button><van-button type="danger" bindtap="btnHander1" data-step="{{-1}}">numB-1</van-button>// .js文件// pages/message/message.jsimport {createStoreBindings} from '../../miniprogram/miniprogram_npm/mobx-miniprogram-bindings/index'import {store} from '../../store/store'Page({ //生命周期函数--监听页面加载 onLoad(options) { this.storeBindings = createStoreBindings(this,{ store, fields:['numA','numB','sum'], actions:['updateNum1'] }) }, //绑定按钮点击事件 btnHander1(e){ // console.log(e); this.updateNum1(e.target.dataset.step) }, //生命周期函数--监听页面卸载 onUnload() { this.storeBindings.detroyStoreBindings() },})

将 Store 成员绑定到组件中import {storeBindingsBehavior} from '../../miniprogram/miniprogram_npm/mobx-miniprogram-bindings/index'import {store} from '../../store/store'Page({ behaviors:[storeBindingsBehavior], storeBindings:{ // 数据源 store, //指定要绑定的store fields:{//指定要绑定的字段数据 numA:()=>store.numA, //绑定字段的第一种方式 numB:(store)=>store.numB,//绑定字段的第二种方式 sum:'sum', //绑定字段的第三种方式 }, actions:{ //指定要绑定的方法 updateNum2:'updateNum2' } },})在组件中使用 Store 中的成员//组件的 .wxml结构<view>{{numA}}+{{numB}}={{sum}}</view><van-button type="primary" bindtap="btnHander2" data-step="{{1}}">numB+1</van-button><van-button type="danger" bindtap="btnHander2" data-step="{{-1}}">numB-1</van-button>//组件的 .js结构methods: { btnHander2(e){ this.updateNum2(e.target.dataset.step) }}

🙉分包微信小程序--》小程序—全局数据共享和分包(微信小程序开发一个多少钱)

分包指的是把一个完整的小程序项目,按照需求划分为不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载。

分包的好处:可以优化小程序首次启动的下载时间;在多团队共同开发时可以更好的解耦协作。

分包的项目构成:

分包前:

小程序项目中的所有的页面和资源都被打包到一起,导致整个项目的体积过大,影响小程序首次启动的下载时间。

分包后:

分包后,小程序项目由 一个主包 + 多个分包组成:

主包:一般只包含项目的 启动页面 或 TabBar 页面、以及所有分包都需要用到的一些公共资源。

分包:只包含和当前分包有关的页面和私有资源。

分包的加载规则:

在小程序启动时,默认会下载主包并启动主包内页面:

tabBar页面需要放到主包中

当用户进入分包内某个页面时,客户端会把对应分包下载下来,下载完成后在进行展示:

非tabBar页面可以按照功能的不同,划分为不同的分包之后,进行按需下载

分包的体积限制:

目前,小程序分包的大小有以下两种限制:

整个小程序所有分包大小不超过16M(主包+所有分包)

单个分包/主包大小不能超过2M

创建分包

创建分包很简单,只需要在app.json文件下,通过 subpackages 进行分包创建,创建之后保存文件,分包的文件就会自动出现在目录中。

{ "pages":[ //主包的所有界面 "pages/home/home", "pages/message/message", "pages/contact/contact", "pages/index/index", "pages/logs/logs" ], "subpackages":[ //通过subpackages节点,
本文链接地址:https://www.jiuchutong.com/zhishi/299012.html 转载请保留说明!

上一篇:爬虫基本原理(爬虫基本原理有哪些)

下一篇:CSS中哪些属性可继承,哪些不可以?(css中哪些属性可以使用)

  • 华为荣耀20插卡没反应(华为荣耀20插卡孔在哪里)

    华为荣耀20插卡没反应(华为荣耀20插卡孔在哪里)

  • 华为p40pro送耳机吗(华为p40pro赠送的耳机怎么样)

    华为p40pro送耳机吗(华为p40pro赠送的耳机怎么样)

  • 十进制数32转换成无符号二进制整数是(十进制数32转换成二进制数)

    十进制数32转换成无符号二进制整数是(十进制数32转换成二进制数)

  • 抖音拉入黑名单还能看到我的作品吗(抖音拉入黑名单对方会知道吗)

    抖音拉入黑名单还能看到我的作品吗(抖音拉入黑名单对方会知道吗)

  • 老师在钉钉上能看到什么(老师在钉钉上能看到学生看回放的次数吗)

    老师在钉钉上能看到什么(老师在钉钉上能看到学生看回放的次数吗)

  • 华为荣耀怎么截屏(华为荣耀怎么截屏的4种方法)

    华为荣耀怎么截屏(华为荣耀怎么截屏的4种方法)

  • 微信消息免打扰还是有提示(微信消息免打扰还能收到语音通话吗)

    微信消息免打扰还是有提示(微信消息免打扰还能收到语音通话吗)

  • switch开不了机怎么办(switch开不了机怎么修)

    switch开不了机怎么办(switch开不了机怎么修)

  • 钉钉分屏怎么设置(钉钉分屏怎么设密码)

    钉钉分屏怎么设置(钉钉分屏怎么设密码)

  • 一个人可以申请几个淘宝账号(一个人可以申请几张信用卡)

    一个人可以申请几个淘宝账号(一个人可以申请几张信用卡)

  • ipad第七代是什么型号(ipad第七代是2020吗)

    ipad第七代是什么型号(ipad第七代是2020吗)

  • 在计算机网络中lan指的是(在计算机网络中通常把提供并管理共享资源的计算机称为)

    在计算机网络中lan指的是(在计算机网络中通常把提供并管理共享资源的计算机称为)

  • 抖音拍视频需要什么工具(抖音拍视频需要准备什么)

    抖音拍视频需要什么工具(抖音拍视频需要准备什么)

  • 电脑连接手机热点怎么连(电脑连接手机热点总是掉线怎么回事)

    电脑连接手机热点怎么连(电脑连接手机热点总是掉线怎么回事)

  • 手机怎么看淘宝等级几颗心(手机怎么看淘宝评价)

    手机怎么看淘宝等级几颗心(手机怎么看淘宝评价)

  • 什么叫反片打印(什么叫反片打印图片)

    什么叫反片打印(什么叫反片打印图片)

  • 三星note10和s10的区别(三星note10 和s10)

    三星note10和s10的区别(三星note10 和s10)

  • 支付宝收款成功的语音怎么弄(支付宝收款成功了但没收到钱是怎么回事)

    支付宝收款成功的语音怎么弄(支付宝收款成功了但没收到钱是怎么回事)

  • 苹果srir怎么语音打开(苹果手机siri怎么用语音对话)

    苹果srir怎么语音打开(苹果手机siri怎么用语音对话)

  • 抖音怎么官方买热门(抖音上如何购买产品)

    抖音怎么官方买热门(抖音上如何购买产品)

  • 6+128和8+128有什么区别(6+128 和8+128)

    6+128和8+128有什么区别(6+128 和8+128)

  • tensorflow使用显卡gpu进行训练详细教程(tensorflow dlib)

    tensorflow使用显卡gpu进行训练详细教程(tensorflow dlib)

  • uniapp页面跳转的几种方式(uniapp跳转页面没反应)

    uniapp页面跳转的几种方式(uniapp跳转页面没反应)

  • vue如何给组件动态绑定不同的事件(vue移动组件)

    vue如何给组件动态绑定不同的事件(vue移动组件)

  • 个人所得税综合税率表2023
  • 预付款类发票可抵扣吗
  • 金税四期正式启动
  • 公司注销之后股东还承担责任吗
  • 商品涉及商业折扣的,如何确认企业所得税的销售收入?
  • 物业前期开办物资
  • 零食发票能抵税吗
  • 抵债资产处置账务实例
  • 用友u8怎样查询上个月凭证
  • 打款金额少于开票金额
  • 土地罚款可以计入成本吗?
  • 契税法律依据
  • 合伙企业需要交企业所得税吗?
  • 个体户个人所得税怎么交
  • 为什么利润表的财务费用与利息费用逻辑不对
  • 增值税专用发票有效期是多长时间
  • 进项税额转出怎么申报
  • 2016年的发票2020年可以认证吗
  • 民间非营利组织财务报表
  • 工会票据电子化管理系统如何领发票
  • 教育费附加免征还计提吗
  • 环保税与排污费的关系
  • 小规模无票收入后期开票怎么申报
  • 暂估冲红的分录怎么写
  • 公司回购股份有什么好处
  • PHP:mb_eregi_replace()的用法_mbstring函数
  • uniapp获取input的值
  • 进口小汽车消费税率
  • 开启资源管理器自动刷新功能
  • php生成csv文件
  • echarts中的legend能被监听吗
  • 命令行 压缩
  • 原材料用于在建工程增值税如何处理
  • 对公账户走账是怎么回事
  • 结转成本的会计科目
  • 年金现值系数公式记忆
  • mysql union和join
  • 金税开票系统
  • 发票上盖成财务章了怎么办
  • sqlserver监视器
  • sql中order by的用法
  • 弃置费用的财务费用计算
  • 伙食费怎么入账
  • 记账凭证应具备的基本内容包括
  • 发货环节产生的影响
  • 货物赔偿款如何计算
  • 期末结转主营业务成本
  • 留抵税额抵减欠税滞纳金
  • 分公司非独立核算企业所得税税率
  • 其他债权投资有哪些科目
  • 股东分红按利润表的净利润计算
  • 收入的利息如何计算
  • 预付卡发票如何做分录
  • mysql 压测
  • mysql挂了怎么排查
  • Sqlserver聚集索引和非聚集索引的区别
  • mysql用处
  • linux安装过程中的硬盘分区
  • vnetd.exe
  • win10更换登陆账号
  • 苹果mac 最新系统
  • windows8使用技巧
  • 微软发布Win10更新
  • js日期选择框
  • unity 加载文件 卡顿
  • javascript的canvas
  • javascript中的函数也称为什么
  • Node.js中的construct构造函数
  • 将网页改换成黑白
  • node+mongodb
  • c# unity 教程
  • nodejs如何实现数据库
  • jquery替换div内容
  • onInterceptTouchEvent onTouchEvent 的坑 坑死了
  • html仿淘宝
  • 如何查询纳税信用等级证明
  • 青岛胶州国际机场在哪个区
  • 12366国税网上申报
  • 辽宁房产税征收标准
  • 财税[2016]36号文营业税改征增值税试点实施办法
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设