uniapp项目实践总结(二十二)分包优化和游客模式

导语:这篇主要介绍应用分包和游客模式相关的内容。

目录

  • 应用分包
  • 游客模式

应用分包

微信对于小程序的打包压缩后的代码体积是有限制的,网页和 APP 也可以适用分包功能,因此需要进行分包添加以及分包优化。

分包添加

pages.json文件中添加分包的信息。例如:有一个名叫user的分包,里面有一个文件是index.vue,那么分包配置就是:

json 复制代码
{
  "pages": [
    {
      "path": "pages/index/index",
      "style": {
        "navigationBarTitleText": "首页"
      }
    }
  ],
  "subPackages": [
    {
      "root": "user",
      "pages": [
        {
          "path": "index",
          "style": {
            "navigationBarTitleText": "分包首页"
          }
        }
      ]
    }
  ]
}

配置完成后该文件的访问地址就是/user/index,其中的user是在根目录下存放的。

分包优化

添加配置

分包优化的方法是在manifest.json文件中对应的平台添加以下配置:

例如:mp-weixin平台下添加分包优化。

json 复制代码
{
  "mp-weixin": {
    "optimization": {
      "subPackages": true
    }
  }
}

注意事项

  • 目前只支持mp-weixinmp-qqmp-baidump-toutiaomp-kuaishou的分包优化;
  • 分包目录内放置的静态资源不会被打包到主包中,也不可在主包中使用;
  • 当某个 js 仅被一个分包引用时,该 js 会被打包到该分包内,否则仍打到主包(即被主包引用,或被超过 1 个分包引用);
  • 若某个自定义组件仅被一个分包引用时,且未放入到分包内,编译时会输出提示信息;

微信小程序

目前微信小程序分包大小有以下限制:

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

游客模式

在一些平台,比如微信小程序和苹果 ios 应用商店,上架的应用一定要提供游客模式才可以进行审核通过。

如何实现游客模式呢,下面就来简单实现一下。

服务端配置

可以通过动态配置来打开或关闭游客模式。

例如:默认开启游客模式。

json 复制代码
{
  "vistor": true
}

客户端配置

客户端根据服务端的配置来设置是否开启游客模式。

逻辑分析

  • 开启游客模式后,启动应用就应该可以进入到应用程序的主页面,然后可以随意游览和使用,当遇到需要登录才能访问的地方,再跳转到登录页面;
  • 关闭游客模式后,启动应用后需要先登录账号,然后才可以访问应用内的页面或者使用应用提供的服务和功能;

设置缓存

启动应用获取服务端配置后可以设置缓存数据:

js 复制代码
// 接口获取到的数据
let config = {
  vistor: true,
};
// 存入本地
uni.setStorage("vistor", config.vistor);

获取缓存

在要访问的页面触发需要登录才能使用的功能之前,先判断是否开启了游客模式,如开启再提示并跳转登录。

js 复制代码
// 获取本地游客模式
let vistor = uni.getStorage("vistor");
// 获取接口,如返回401,则需要登录
let login = true;
// 游客模式已开启并且需要登录则跳转登录界面
if (vistor && login) {
  uni.navigateTo({
    url: "/pages/login",
  });
}

最后

以上就是分包优化和游客模式的主要内容,有不足之处,请多多指正。

相关推荐
前端Hardy12 分钟前
别再手写代码了!2026 前端 5 个 AI 杀招,直接解放 80% 重复劳动(附工具+步骤)
前端·javascript·面试
SuperEugene15 分钟前
Element Plus/VXE-Table UI 组件库规范:统一用法实战,避开样式冲突与维护混乱|工程化与协作规范篇
前端·javascript·vue.js·ui·前端框架·element plus·vxetable
前端Hardy30 分钟前
前端工程师必备的 10 个 AI 万能提示词(Prompt),复制直接用,效率再翻倍!
前端·javascript·面试
BioRunYiXue35 分钟前
Nature Methods:CellVoyager 自主 AI 智能体开启生物数据分析新时代
大数据·开发语言·前端·javascript·人工智能·数据挖掘·数据分析
再玉米地里吃过亏1 小时前
ONENET平台API鉴权错误
前端
网络点点滴1 小时前
Vue3中Suspense的使用
前端·javascript·vue.js
饼干哥哥2 小时前
搭建一个云端Skills系统,随时随地记录TikTok爆款
前端·后端
酉鬼女又兒2 小时前
零基础快速入门前端Web存储(sessionStorage & localStorage)知识点详解与蓝桥杯考点应用(可用于备赛蓝桥杯Web应用开发)
开发语言·前端·javascript·职场和发展·蓝桥杯·html
FollowHeart2 小时前
自建私有日记本:MyDiary —— 属于你的 NAS 极简写作空间
vue.js·github
DanCheOo2 小时前
# 从"会用 AI"到"架构 AI":高级前端的认知升级
前端·ai编程