qiankuan,子应用明确选择暴露某些接口给主应用,假设有个子应用是购物模块,它可能会暴露一个商品搜索接口,主应用则可以在用户输入关键词后,通过QianKun来触发子应用的搜索功能并获取结果。详细demo
时间: 2024-12-22 21:29:31 浏览: 5
关于QianKun(乾坤框架)的子应用场景,下面是一个简化版的JavaScript + Vue3+QianKun的示例,展示了如何从主应用触发子应用(购物模块)的商品搜索接口:
**主应用 (parent app - 主入口)**
```vue
<template>
<qian-kun-renderer :app-id="appId" ref="renderApp">
<!-- 子应用区域 -->
</qian-kun-renderer>
</template>
<script>
import useQianKun from '@qiankun/vue';
export default {
setup() {
const appId = 'shopping-app'; // 子应用ID
useQianKun(appId); // 初始化QianKun
function searchProducts(keyword) {
const renderer = this.$refs.renderApp;
if (!renderer) return; // 检查子应用是否已渲染
renderer.invokeMethod('searchProducts', keyword); // 调用子应用的搜索接口
}
// 其他主应用的逻辑...
},
methods: {
// 用户输入关键词
handleSearchInput(e) {
searchProducts(e.target.value);
}
}
};
</script>
```
**子应用 (child app - 购物模块)**
```vue
<script setup>
import useQianKun from '@qiankun/vue';
const searchProducts = async (keyword) => {
// 实际的搜索逻辑,这里仅为演示,可以换成网络请求或者其他业务逻辑
const response = await fetch(`/api/search?keyword=${keyword}`);
const products = await response.json();
return products;
};
onMounted(() => {
useQianKun.provide('searchProducts', searchProducts); // 提供给主应用使用的接口
});
</script>
<!-- 子应用界面... -->
```
在这个示例中,当用户在主应用中输入关键词后,`handleSearchInput`方法会调用`searchProducts`方法,这个方法实际上是通过`invokeMethod`触发子应用提供的`searchProducts`接口,并接收返回的结果。
阅读全文