相关文章推荐
坚强的南瓜  ·  Day ...·  1 月前    · 
成熟的梨子  ·  React ...·  1 月前    · 
星星上的苦咖啡  ·  搜索结果·  3 月前    · 
高大的楼房  ·  安装与运行open mpi - ...·  1 年前    · 

不安装依赖,直接调用 npm | 远端 React 组件

做无代码平台当中,物料资源的管理是很重要的,而我们不可能为用户做好所有的组件,所以还要提供额外的入口,我们需要一个组件能够通过一个url调用远程的组件,而且这样也可以联动到我们做好的组件平台。

所以我期望使用方式是这样的:

<Component
    // 组件源码js地址
    url={"http://xxx"} 
    // component props ... 
    width={500}
    height={350}
/>

这样,我们就能调用 url 地址所封装的组件,而这个地址是用户自己提供的,其实这种用法和微前端差不多,不过粒度是以组件js。

分析

所以步骤应该是如下

  1. 写一个组件
  2. 打包成umd或者cjs规范
  3. 上传到类似cdn的平台
  4. 通过接口访问到js后,通过 new Function 解析,获取到组件
  5. 展示

那 Component 组件实际上要做的是 请求/解析,代替 import/require 的功能

我们可以先写一个组件

var sayHello = ()=> { console.log("Hello") }
exports.default = sayHello

再通过 ajax 获取到组件代码

//伪代码
const jsContent = getJs(jsurl
const requires = {}
const exports = {};
const module = { exports };
const fn = new Function("require", "module", "exports", jsContent);