single-spa - 这是正常行为吗?单spa activeWhen
问题描述
activeWhen 正在监听 url
我们有 ABC 应用程序,我们的 url 结构必须是主机名/A/B/C 如果我只想显示 C 微应用程序,activeWhen("hostname/A/B/C") 但来自 A 和 B 的所有父应用程序都会也出现..
无论如何是解决方法(不改变url结构)。
以及为什么它会加载所有父应用程序。不是 active 什么时候需要匹配而不是部分匹配?
另一个问题,如何像 single-spa-inspector 一样强制加载应用程序
谢谢你调查它
解决方案
是的,有一个解决方法。
当您将字符串传递给 activeWhen 数组时,它将在 URL 以该字符串开头时匹配。因此,您的父应用程序具有activeWhen: ['/a']
并且activeWhen: ['/a/b']
还将匹配主机名/A/B/C。这对嵌套路由很有帮助。
如果您只想在路径名完全等于字符串时匹配,您可以将函数添加到 activeWhen 数组而不是字符串。activeWhen 数组中的函数将window.location
作为参数接收。
例子:
singleSpa.registerApplication({
name: 'a',
app: () => import('src/a.js'),
activeWhen: [(location) => location.pathname === '/a'] // will only match '/a' exactly
});
singleSpa.registerApplication({
name: 'b',
app: () => import('src/b.js'),
activeWhen: [(location) => location.pathname === '/b'] // will only match '/b' exactly
});
singleSpa.registerApplication({
name: 'c',
app: () => import('src/c.js'),
activeWhen: [(location) => location.pathname === '/a/b/c'] // will only match '/a/b/c' exactly
});
推荐阅读
- perl - 将一长行 HTML 拆分为多行
- regex - 使用正则表达式将第一个字母转换为小写字母为大写
- asp.net-mvc - 已在跟踪具有键值的另一个实例
- javascript - 将资源作为 JSON 提要加载时的方法问题
- php - PHP 强制按值分配
- javascript - Vue.js 模态不显示何时
- java - 如何在 Spring Boot 中使用 @Pathvariable 注释调用 Post 方法?
- google-fit - google fit Rest API 中位置的数据源
- html - 为什么此文本居中对齐?
- pandas - 在特定时间重置的来自 DateTime 的 Cumsum