位置: IT常识 - 正文

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

发布时间:2024-01-17
微信小程序--》小程序—全局数据共享和分包

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

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

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

🛵个人主页:亦世凡华、

🛺系列专栏:微信小程序

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

👀引言

       ⚓经过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中哪些属性可以使用)

  • 燃气热水器每天需要断电吗(燃气热水器每天用完要关掉吗)

    燃气热水器每天需要断电吗(燃气热水器每天用完要关掉吗)

  • 惠普519打印机怎么连接wifi(惠普519打印机怎么清洗打印头)

    惠普519打印机怎么连接wifi(惠普519打印机怎么清洗打印头)

  • opporeno7微信视频美颜怎么设置(opporeno7微信视频来电不显示)

    opporeno7微信视频美颜怎么设置(opporeno7微信视频来电不显示)

  • 苹果网页下载安装不了(苹果下载网页app怎么安装)

    苹果网页下载安装不了(苹果下载网页app怎么安装)

  • B站不能设置默认关弹幕了(b站可以设置不允许弹幕吗)

    B站不能设置默认关弹幕了(b站可以设置不允许弹幕吗)

  • qq密保好友辅助需要好友密码(qq密保好友辅助让好友扫码是真的吗)

    qq密保好友辅助需要好友密码(qq密保好友辅助让好友扫码是真的吗)

  • 支付宝该身份在支付宝无法认证新账号

    支付宝该身份在支付宝无法认证新账号

  • 录屏怎么截取一部分?(录屏怎么截取一半画面 视频裁剪部分画面的方法)

    录屏怎么截取一部分?(录屏怎么截取一半画面 视频裁剪部分画面的方法)

  • windows7是由哪个公司开发的(windows7是由哪个公司开发的中文)

    windows7是由哪个公司开发的(windows7是由哪个公司开发的中文)

  • 华为荣耀20怎么关闭开发者模式(华为荣耀20怎么开空调遥控器)

    华为荣耀20怎么关闭开发者模式(华为荣耀20怎么开空调遥控器)

  • 华为手机屏幕保护时间设置在哪里(华为手机屏幕保护在哪设置)

    华为手机屏幕保护时间设置在哪里(华为手机屏幕保护在哪设置)

  • iphone6s激活出错怎么办(iphone6plus激活出错)

    iphone6s激活出错怎么办(iphone6plus激活出错)

  • 百乐p500高考扫不出(百乐hitecpointv5rt高考能用吗)

    百乐p500高考扫不出(百乐hitecpointv5rt高考能用吗)

  • iphone未激活什么意思(未激活的iphone是什么意思)

    iphone未激活什么意思(未激活的iphone是什么意思)

  • 抖音心愿单在哪里看(抖音心愿单在哪里弄)

    抖音心愿单在哪里看(抖音心愿单在哪里弄)

  • 小米1亿像素是什么手机(小米1亿像素是什么摄像头)

    小米1亿像素是什么手机(小米1亿像素是什么摄像头)

  • 爱剪辑电脑版怎么用(爱剪辑电脑版怎么弄画中画)

    爱剪辑电脑版怎么用(爱剪辑电脑版怎么弄画中画)

  • wps如何排序列号(wps中如何排序号)

    wps如何排序列号(wps中如何排序号)

  • ie浏览器如何更新升级(ie浏览器如何更改下载位置)

    ie浏览器如何更新升级(ie浏览器如何更改下载位置)

  • 电脑搜狗输入法怎么设置快捷短语(电脑搜狗输入法怎么设置)

    电脑搜狗输入法怎么设置快捷短语(电脑搜狗输入法怎么设置)

  • 陌陌设备异常怎么解除(陌陌设备异常怎么解封)

    陌陌设备异常怎么解除(陌陌设备异常怎么解封)

  • 微信安全码是什么(微信安全中心)

    微信安全码是什么(微信安全中心)

  • 公司代扣代缴个人所得税如何退税
  • 小规模纳税人合理避税
  • 经营租赁含有免租金吗
  • 交印花税合同上每个月价格要一样吗
  • 中国税务精神是谁提出的
  • 积分抵现是什么意思
  • 发票第一联需要盖章嘛
  • 普票丢失了能作废重开吗
  • 建筑业机械设备是指什么
  • 天猫国际的店铺是正品吗 感觉很便宜
  • 退回来的增值税税费怎么做账务处理
  • 收到实物返利
  • 发票税表抵扣了账务未抵扣账务处理怎么做?
  • 个体工商户开具增值税专用发票
  • 研发部门领用材料会计分录
  • 医院开发票需要税号吗
  • 住房公积金的工资基数什么意思
  • 建安企业结转成本如何计算
  • 金税盘初始密码忘记了怎么办
  • 营改增建筑业
  • 固定资产清理应交税费怎么算
  • 商品房买卖合同备案查询
  • 其他综合收益属于什么类
  • linux命令行怎么用
  • 没有独立显卡没有核显能开机吗
  • 处置抵债资产的增值税计入
  • 个体户何去何从
  • 实收资本本年利润属于什么科目
  • 明细分类账户定义
  • php查询mysql数据库
  • github ci/cd
  • javascript表单验证和控制类
  • 大学生web前端期刊有哪些
  • win11更新22468
  • lvm命令详解
  • wget下载yum
  • ps像素大小怎么调整不了
  • 公司财务人员岗位职责
  • 分公司要所得税汇算吗
  • 计提工资的时候跟发放的时候不一样怎么办
  • 固定资产净残值账务处理
  • 一般纳税人支付的增值税计入成本吗
  • 航天金税服务费怎么交
  • 税款追征期三年
  • 分公司民事责任由谁承担
  • 发票可以去做原始凭证吗
  • mysql提取数据语句
  • 增值税专用发票查询系统官方网站
  • 个税返还款增值税税率
  • 差旅费不抵扣
  • 建筑业异地预缴税款怎么纳税申报
  • 手工账做账流程总结
  • 其他业务收入的附加税的会计分录
  • 工资扣税是减去五险一金吗
  • 金三财务报表如何更正?
  • 出库单上面的单位写谁的
  • 发票认证完了该怎么取消
  • 混合销售行为的概念
  • 其他货币资金属于什么类科目
  • 如何设置生产成本总账表格
  • sql server 2000安装包
  • 出现windows boot manager
  • uefi模式怎么装机
  • 利用()可以对系统进行全面的设置
  • window10的cmd命令
  • ubuntu photoshop
  • windows的服务怎么打开
  • win10开始菜单磁贴颜色
  • 如何去掉windows不是正版
  • 怎样设置从硬盘启动给电脑做系统
  • html5的全局属性
  • c#中thread的用法
  • 怎么在html中调用js的函数
  • 网页javascript错误
  • jquery如何做登录
  • javascript 数组删除
  • 浙江税务打不开,提示新版本
  • 没有核定印花税可以按次申报吗
  • 开票软件里的统计怎么弄
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号