当前位置: 首页 > news >正文

小程序内的分包与数据共享

一:数据共享

小程序内的数据共享和vue当中不一样,vue当中的vue实例可以使得所有的组件都能this.store

但是小程序它只有page对象,和组件实例对象.对于vue而言,vue实例可以使得添加的组件都有.

但是page对象页面对象,不能使得页面内部有.只能使得这个页面内能访问.vue实例,会使得执行组件时,添加store属性.但是page对象不可以.

每个对象添加只能顾着自己.

因此如果需要在某个页面/组件内添加共享数据,需要自行每个页面和组件都添加

1)页面内添加

导入函数,导入store对象.

导入的对象可以第一个时添加到哪里,第二个是数据源添加那些数据.会添加到this上,这些其实都是新的存储在新的内存上的变量,只不过当修改mutations的时候,会指向同一个对象的.因此当修改其中一个的时候,有更新的效果.所有的都会变.添加绑定后返回的对象可以解绑.

执行这个函数就能执行store对象共享,什么时候执行呢?数据还未绑定前,onloading.绑定的时候就有,当页面卸载进行解绑,不需要了,不要占用空间.

2)组件内共享数据绑定

组件内没有能组件一开始就的生命周期函数,因此这里写属性,会自动绑定.

上面的方法卸载时,得到的对象内的方法会解绑所有.包括组件.

主包内会一开始就加载第一个路径的地址的页面,以及下载主包内的其他页面.

因此tabbar一般都是首页.就写tabbar/首页路径到主包内

二:分包

1.使用分包的原因

当不使用分包时,加载小程序时会将所有的页面和资源都下载下来.分包,分为主包和分包,小程序一开始只会下载主包的内容,首页1更快渲染.

  • 整个小程序所有分包大小不超过 20M
  • 单个分包/主包大小不能超过 2M

2.如何使用分包呢?

在app.json下,pages原本是所有页面的路径,现在只是主包的路径.

在subpackages所写的是其他分包,每个分包内都有多个页面的路径.

root是根目录下的文件夹

{"pages":["pages/index","pages/logs"],"subpackages": [{"root": "packageA","pages": ["pages/cat","pages/dog"]}, {"root": "packageB","name": "pack2","pages": ["pages/apple","pages/banana"]}]
}

分包内不能再谢谢分包,只能写路径,页面.

全局样式等打包到主包上,如果再分包商不能被所有分包使用.

当加载分包内的某一页面,只会按需下载相关的四个文件.

三:独立分包

像上述分包和主包,即使一开始不跳转到主包,只是打开分包,也会加载主包的内容.

但是独立分包,不同于普通的分包,内部有完整的文件,不需要下载主包,主包内的全局样式等也不会对独立分包内的页面起作用.这是独立分包.

1)开启独立分包

subpackages即可,则执行的时候这个就是独立分包.

{"root": "moduleB","pages": ["pages/pear","pages/pineapple"],"independent": true
}

如果是分包内的页面则一定会加载主包,如果是独立分包的页面,只会加载独立分包的内容.分包做到了按需下载.减少下载的内容.

分包内写有公共样式的多个分包.

独立分包,只有自己的.

进入哪个页面,下载哪个页面的文件,不是整个分包,下载主包也是与页面相关的文件.

四:分包预下载

app.json内

这样写会当加载这个页面的内容时,也会加载相关的文件.packages可以写name.

整个项目内,可以分包预下载的体积大小限制是2M.

http://www.lryc.cn/news/358694.html

相关文章:

  • WordPress子比主题美化-首页动态的图片展示
  • jsp实验19 File
  • 【OpenVINO™】在C#中使用 OpenVINO™ 部署 YOLOv10 模型实现目标
  • RabbitMQ 如何保证消息不丢失
  • 【技术突破】合合信息新品震动业界,TextIn智能抽取,是不是藏了黑科技?
  • Transformer模型学习(1)
  • TinTinLand Web3 + AI 共学月|五周上手,捕获浪潮碰撞下的无限机遇
  • 渗透课程第二阶段--Part1--信息收集
  • ubuntu22 搭建nginx高可用集群(VIP(keepalived) + 负载均衡)
  • QT 编译Lua 动态库,使用Lua脚本混合编程
  • 关于不均衡数据的探究
  • LwIP 之十 详解 TCP RAW 编程、示例、API 源码、数据流
  • 【京东评论】数据源——Python提升获取效率▼
  • Java大厂面试题第2季
  • 探索无限可能性——微软 Visio 2021 改变您的思维方式
  • Linux CFS调度器之周期性调度器scheduler_tick函数
  • git生成密钥(免密)
  • 山东大学软件学院2021级编译原理回忆版
  • 为什么都说视频号小店值得做,具体该怎么做?新手必学
  • 网络安全岗秋招面试题及面试经验分享
  • 如何实现一个AI聊天功能
  • 实战16:基于apriori关联挖掘FP-growth算法挖掘关联规则的手机销售分析-代码+数据
  • Linux基础指令及其作用之系统信息和管理
  • FinRobot:一个由大型语言模型(LLM)支持的新型开源AI Agent平台,支持多个金融专业AI Agent
  • 【SQL学习进阶】从入门到高级应用(七)
  • 20231911 2023-2024-2 《网络攻防实践》实践十一报告
  • 5G专网驻网失败分析(suci无效)
  • 【PHP项目实战训练】——laravel框架的实战项目中可以做模板的增删查改功能(1)
  • go语言使用model Gorm MySQL查询数据 定时十分钟查询一次 查询十分钟前新建的数据
  • 透视AI技术:探索折射技术在去衣应用中的奥秘