写点什么

iofod 导入任意前端资产,以 Element UI 为例

作者:iofod jude
  • 2022 年 8 月 31 日
    广东
  • 本文字数:2059 字

    阅读完需:约 7 分钟

iofod导入任意前端资产,以 Element UI 为例

导入外部组件的功能千呼万唤始出来,iofod 提供了一个类微前端的组件容器,支持装载任意前端组件。官方更新的文档比较简练,不易于入门的同学上手,本文作为对官方文档的补充,将一步一步介绍如何在 iofod 导入外部组件。

一、组件功能开发

我们今天以 vite 和 element ui 来演示导入自定义组件到 iofod。先实现这么个小目标吧:在 iofod 里使用 Element UI。

 

在 iofod 中导入之前我们需要准备一些内容,如果同学在以前有使用过 vue 框架下导入组件的话,应该会十分熟悉。

 

首先,初始化工程模板,我们使用 vite 作为构建工具


框架选择 Vue



生成项目模板后,进入项目目录,安装 npm 依赖



安装 element-plus 依赖



接着,根据官网提示,修改 vite 配置来支持按需导入



安装下 unplugin-element-plus 依赖



接着修改 Vue 单文件组件,引入一个 el-button 组件到页面,去掉一些无关内容


导入 element UI 样式文件到全局



接着执行本地调试命令

 


查看效果,还不错



前面是基础的准备,假如我们组件的功能就开发到这儿结束,那么要怎么引入到 iofod 里呢?

 

二、导入到 iofod

 

Iofod 要求导入的外部组件必须是一个 ES 模块,模块暴露 setup 方法给 iofod 调用来初始化外部组件。

我们根据要求,把直接挂载 Vue 实例的这一行代码改造成通过 setup 传入挂载节点的模式:

 


接下来将组件打包,我们可以选择用 Vite 库模式的方式构建打包,也可直接打包,然后手动或通过脚本暴露 setup 方法,后者适用于不能用库模式打包的情况,读者可自行尝试,这里示范前一种,也是建议大家使用的方式。

我们修改 vite.config.js 文件,新增 lib 相关配置,设置 ES 格式



然后执行生产构建命令

 


开启本地静态服务器进行预览



接下来需要进入 iofod 编辑器,开启引入外部组件的功能特性,可参考官方文档:

https://doc.iofod.cn/#/zh-cn/3/09-1

 

开启特性后可在组件栏目看到一个【实验性】目录



我们拖动并添加一个外部组件到界面,根据我们打包生成的文件结构来配置外部组件。

比如我们的示例项目打包生成如下结构:

 


根据目录结构设定外部组件的模型变量以及外部依赖,

entry 模型变量的地址应该指向 dist/index.js,而 style.css 作为外部依赖。

设定完成后,即可看到组件导入到 iofod 的效果了

 


确认组件没问题后,可选择托管到云或者自己的服务器上

 


至此一个第三方组件导入 iofod 的流程就结束了。

好的又结束了,大伙们有没有学到新知识,别急着去应用,解决完外部组件的导入问题,想必大家也会肯定产生了几个疑惑:需要使用到多个外部组件怎么办?

接下来就是针对性讲优化部分的内容。

 

三、优化(可选)

 

假如我们同一个应用需要导入多个外部组件,这些组件使用类似的框架,比如都使用 Vue 和 Element UI,那么我们可以把他们两者抽离出来作为公共依赖。我们以之前例子的基础上继续示范。

根据 element 官网的提示,我们可以将 Vue 和 element UI 的样式文件作为公共依赖



一般情况下我们也不会用到 elementUI 所有组件,所以这里我们还是按需引入组件处理。

首先,安装 Vite 提取公共依赖的插件 vite-plugin-externals

 


接着修改 vite 配置文件,把 Vue 作为外部依赖:

 


后续的步骤跟前文接近,我们继续执行构建命令,然后开启预览

 


回到 iofod 编辑器,继续添加外部组件,添加 Vue 和 element UI 公共样式为外部依赖(同样地,可以用打包出来的 style.css 代替公共样式,取决于实际场景需要),根据打包出来的文件结构设定 entry 模型变量,即可看到导入效果

 


项目主页可查看:

https://www.iofod.cn/app/b80ee135aa36745800cbcfd4500d53a5/index.html#/index

示例代码可查看:https://github.com/iofod/iofod-exterior-demo

 

四、跑起来!

我们以刚才的公开项目示范,在本地跑起来!

如果还没安装 iofod-cli 工具,根据文档安装


新建一个项目,步骤与前文类似,安装依赖并开启本地调试,查看效果,不错!



导入外部组件的所有步骤到此为止,读者跟着操作一步一步来即可完成目标。

 

外部组件与原子组件差异化最大的地方在于跨平台性,外部组件一般是在 Web 端运行的,不兼容小程序(除非外部组件本身是支持的),flutter 则通过用 webview 的形式来兼容,一个外部组件就是一个 webview。

 

嘿嘿,机灵的读者朋友想必清楚个中意味,这里我通过一个小小的案例演示下。

比如我们通过 Echart Kit 拓展,添加一个三维折线图正交投影的图表到可视化编辑区:



通过 iofod-cli 创建一个 flutter 项目,进入工程目录,执行监听 5200 端口



借助 IFstruct 同步拓展和解析器生成 flutter 代码,在安卓/iOS 模拟器上开启调试,效果如下:


文件过大无法展示,可以去 gzh 查看


打完收工,更多的应用空间就留给大家去发挥了。

结语

再次强调一遍,外部组件可以是任意前端组件,甚至可以是一个应用!没有任何技术栈或者框架的限制。Iofod 作为新兴的通用低代码平台,当前社区组件资产的沉淀不算多,在社区完全成熟前,外部组件的引入可以作为一个很好的过渡方案,同时也是复用现有社区资产的解决方案,如前文提到的 Echart Kit 就是基于外部组件复用现有组件资产的最佳案例,当这些工具链串联起来,生产力超越传统编程是显而易见的事情,让我们一起见证!

 

用户头像

iofod jude

关注

还未添加个人签名 2022.06.24 加入

还未添加个人简介

评论

发布
暂无评论
iofod导入任意前端资产,以 Element UI 为例_小程序_iofod jude_InfoQ写作社区