webcomponent有其优点,也有其缺点,我们AXUI前端框架在开发过程中,使用webcomponent标准模式自定义组件,Shadow Dom由于其隔离性,无法使用外部css,只能使用css变量,这一点导致在组件内部另外得写一套css样式,如果是定义多个类似的组件,则需要维护多套类似的css样式,着实增添了不少负担。
基于这一点我们AXUI的v3版本虽然使用了webcomponent,但是并没有使用Shadow Dom和Slot,我们是在组件节点处于isConnected状态时将内存中的已经填充好的wrap节点直接appendchild到自定义组件内。
我们这个做法既利用了webcomponent不需要初始化的特性,也可以全局使用css样式和css变量。
大家觉得我们这个做法如何?