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

【uniapp】小程序体积优化,分包异步化

前言

在小程序端,分包异步化 是一个重要的减小体积的手段,下面会介绍如何在 uniapp分包异步化

跨分包自定义组件引用

在页面中正常使用: import CustomButton from "@/packageB/components/component1/index.vue";

{"pages": [{"path": "pages/index/index","style": {"navigationBarTitleText": "Index","componentPlaceholder": {"custom-button": "view"}}}],"subPackages": [{"root": "packageA","pages": [{"path": "index/index","style": {"navigationBarTitleText": "分包页面",// 添加配置"componentPlaceholder": {"custom-button": "view"}}}]},{"root": "packageB","pages": [{"path": "index/index",}],}]
}

此特性依赖配置 componentPlaceholder,目前 uniapp 仅支持在 pages.json 中添加页面级别的配置,如果需要在某个组件或者页面中配置,可以使用 uni-toolkit 插件,支持 vue2vue3

跨分包 JS 代码引用

小程序端默认支持跨分包 JS 代码引用,需要写小程序原生支持的语法,不能使用静态引入或者动态引入。示例如下:

sub分包 定义 utils.js 文件

// sub/utils.js
export function add(a, b) {return a + b
}

sub分包 正常使用 utils.js 文件

// sub/index.vue
<template><view>{{ count }}<button @tap="handleClick">add one</button></view>
</template><script>import {add} from "./utils.js";export default {data() {return {count: 1}},methods: {handleClick() {this.count = add(this.count, 1)}}}
</script>

其他分包使用 sub分包utils.js 文件

// sub2/index.vue
<template><view>{{ count }}<button @tap="handleClick">add two</button></view>
</template><script>export default {data() {return {count: 1}},methods: {handleClick() {require('../sub/utils.js', sub_utils => {this.count = sub_utils.add(this.count, 2);}, ({mod,errMsg}) => {console.error(`path: ${mod}, ${errMsg}`)})}}}
</script>

注意:

  • 引用的文件必须存在
  • 使用小程序支持的原生语法

结语

如果这个库的插件帮助到了你,可以点个 star✨ 鼓励一下。

如果你有什么好的想法或者建议,欢迎在 https://github.com/uni-toolkit/uni-toolkit 提 issue 或者 pr

http://www.dtcms.com/a/581978.html

相关文章:

  • 如何做出好的产品:黑客马拉松产品核心逻辑[特殊字符]
  • 网站注入木马crm管理系统登录
  • Vue 2 和 Vue 3 的区别
  • 【FPGA】使用移位实现LED流水灯
  • Arbess零基础学习 - 使用Arbess+GitLab+Hadess实现Java项目自动化构建/主机部署/上传制品
  • S12 简单排序算法--冒泡 选择 直接插入 希尔排序
  • 【RabbitMQ】工作模式实现
  • 自己做淘宝优惠券网站旅游网站模板html免费下载
  • 进一步强化网站建设wordpress用户权限在哪改
  • 【Android Studio】Android Studio的安装过程以及初步使用
  • [人工智能-大模型-138]:如何把文本语言转化成词向量,然后作为模型的输入?给出中间每个步骤的输入和输出的实例值。
  • [Linux]学习笔记系列 -- [kernel]cpu
  • 河南建设工程信息网站怎么自己做游戏软件的app
  • 公司做网站是做什么账务处理传奇网页版在线玩
  • 西门子PLC扩展模块连接兼容性详解
  • 手机使用过的痕迹能查到吗?完整查询指南与步骤
  • Python 类继承详解:深度学习神经网络架构的构建艺术
  • 网站域名申请怎么做wordpress七牛云图床插件
  • 界面控件DevExpress WPF v25.1新版亮点:数据管理功能全新升级
  • 张家港专业的网站制作公司建设部职称网站
  • C# AutoResetEvent和ManualResetEvent
  • AI驱动半导体良率提升:基于机器学习的晶圆缺陷分类系统搭建
  • 系统架构师·案例分析相关知识点
  • 建站公司前景网站运营有前途吗
  • Leetcode 48
  • 因需写了个内网运维专用的IP地址管理工具,有点不同
  • 沈阳seo整站优化网页设计大师
  • 瓯北网站制作公司怎么用思维导图做网站结构图
  • 【代码随想录算法训练营——Day61】图论——97.小明逛公园、127.骑士的攻击
  • [Dify 实战] 使用 System Prompt 实现企业级策略管控