这个作业的要求是: https://bbs.youkuaiyun.com/topics/608215808
我提问的开源项目是:View UI Plus
限于个人开发经验十分有限,所以提出的问题或表述可能有不当之处,欢迎指正,如能提供解答或参考资料不胜感激。
View UI Plus相比其他组件库的主要优势有哪些?
目前我看到的优势是便于自定义样式。
在之前的项目中使用过element+和NaiveUI两个组件库,根据官方文档来看,element+能够自定义样式的范围十分有限,而NaiveUI需要通过修改主题来更改样式,虽然便于全局修改,但实际开发过程中经常遇到只需要修改几个组件的样式的情况,这时候这种方式显得十分笨重;而这两个组件如果直接使用style属性修改样式有时会产生冲突。View UI Plus将CSS 样式封装为指令,方便修改个别组件样式,也有,看起来更方便一些。
我在此前的开发过程中使用组件库的过程几乎都是只选用必要的功能比较复杂的组件使用,并修改其样式来符合页面整体的风格,由于组件库不能满足一些特定的功能或外观,不少组件还是需要自己手搓,因此实际上使用体验是差不多的,相比之下View UI有哪些过人之处呢?
如何在自己的项目中测试对View UI Plus源代码的修改?
我将GitHub上的View UI Plus仓库 clone到本地,并对它们做出了一些小的修改,在example项目也正确地显示了这些修改,注意到example项目引用View UI的方式,是否意味着如果我希望在我的vue3项目中使用修改过的View UI,则需要将View UI源代码复制到我的项目中,并引用src/index.js?
此外,如果将修改过的View UI以以上方式加入到项目中并发布,这样使用是否符合View UI的使用许可,以及开发者的初衷?
View UI Plus的开发方向是什么?
查看GitHub上的View UI Plus,最近的PR主要是修复一些bug,少部分是为组件增加属性或功能,看起来View UI Plus目前已经相对比较完善,
那么View UI在未来的发展方向是什么?比如是否考虑增加新的组件和功能?
以及,开发者参与这一开源项目,应当在哪些方面作出贡献?
为什么View UI Plus的组件文件夹下需要一个index.js?
如源代码中的src/components/auth/下的index.js,其中只有2行代码:
import Auth from './auth.vue';
export default Auth;
这个index.js的作用是什么?
如果需要引入组件的话不是可以直接引用同文件夹下的vue文件吗?
为什么View UI Plus的一些组件不使用template块?
如button组件,button.vue中只有script块而没有template块,通过渲染函数和h()来生成html元素,
return h(tag, {
class: this.classes,
disabled: this.itemDisabled,
onClick: this.handleClickLink,
...this.tagProps
}, slots);
为什么不使用template块而是通过script生成元素?
(个人猜测可能是诸如button之类的组件非常简单且用script生成更易于通过脚本自定义属性)
View UI Plus中的各个文件夹是做什么的?
在src目录下除包含组件的components之外还有directives,locale,mixins等多个文件夹,locale包含处理多种语言文本的记录,styles记录了一些预设样式,但directives,mixins,utils这几个文件夹的内容不是很明白。directives似乎包含了一些调整样式的脚本,mixins中的脚本似乎对处理事件有帮助。