想问一下大家,现在项目中有一套多组件( components )页面,想给用户提供自定义添加组件的能力,如何在不提供源码的前提下提供这样的功能,可以实现吗?
1
redtech 2022-02-14 15:50:33 +08:00
低代码?
|
3
zzt 2022-02-14 16:50:54 +08:00
vue 本身是支持动态注册,https://v2.vuejs.org/v2/guide/components-dynamic-async.html 。
|
4
zzt 2022-02-14 16:56:28 +08:00
@zzt 只要用户提供的组件 JS 符合 vue 组件的数据格式,然后传参 /出参定义好文档。不过由于你这个需求描述不是很清楚,所以也给不出更细化的实现
|
5
Gaays OP @zzt 就是类似低代码,开发了基础的一些组件,如果用户想添加自定义组件,得提供让用户添加自定义组件的功能,但是同时不提供源码,根据 vue 开发文档,我想到的解决方法是:项目中有一个自定义组件的文件夹,运行时通过动态读文件然后在这个页面引入,实现自定义组件功能?
|
6
9tao 2022-02-14 19:45:14 +08:00
用户在你的平台上注册组件,提供 umd 规范并且符合你平台注册规范的组件的 js cdn 地址,在项目启动时动态加载这些 js
|
7
doommm 2022-02-14 20:24:17 +08:00
不光是 js ,附带的 css 也要一并加载
|
8
leonkfd 2022-02-14 21:09:30 +08:00
利用动态组件即可,<component :is="userSelectComponent" />
最近也开发过一个浏览器起始页,也是能让用户自行去选择自己合适的组件去搭建自己的起始页,组件也是动态按需加载,由用户决定,有空感兴趣可以参考下。 https://howdz.vercel.app |
9
waiaan 2022-02-15 09:21:54 +08:00
如果没理解错,这个组件应该是事先不存在的。
你可以准备一个文件夹专门用来放用户自定义的组件,webpack 有个功能是可以读取一个文件夹下的所有文件,然后再用上面几位说的方法注册为 vue 的动态组件。 |
10
waiaan 2022-02-15 09:23:14 +08:00
|
12
zzt 2022-02-15 11:57:10 +08:00
|