Web Component 大家都知道吧?不是Vue,React里的,原生的
我觉得挺灵活强大的啊,自己也写了好几个(例如用Canvas写个数据图表Component),但是我最近看了下Boss直聘的前端职位,基本都是要求掌握Vue/React/Angular 之一,没有提到过 Web Component
Web Component 出现也有两三年了吧,现在连Edge也支持了啊,是不是大多数工程师都还不没了解接触过这个,还是说要考虑兼容IE等不兼容的浏览器啊?(其实也有另外的代码库可以转为为IE兼容,就像Babel)
先说一句题外话:成为标准后没啥人用的 API 简直不要太多。
回到正题,这玩意儿还是看投入产出比。
你说 Web Component,它有啥优势吗?
你说 Shadow DOM 天生自带隔离?三大框架从元素上来说压根就不应该用 DOM、从 CSS 上来说打包的时候一样指定作用域。
你又说可以使用自定义元素?三大框架组件化开发不也一样。
你再说在浏览器上天然支持模板?三大框架在开发时一样支持啊,打包后的兼容性比你还更好嘞。
所以问题来了,既然 Web Component 并没有什么显著优势,那为什么公司要在上面投入更多的精力?已经有的业务怎么办?所以说,对个人来说,保持对前端新技术的探索热忱,这是必须的;但对公司来说,考虑的就不是用不用新技术的问题了。
其实不光国内,国外的市场上也很少有需要 Web Component 技能的。因为三大框架你哪怕只掌握一个,组件化开发咋做你也就懂了,哪怕公司再派你去搞 Web Component,你也能很快上手。但你要只会 Web Component,可三大框架咋开发要懂的可要更多:xxx-cli 咋用、Webpack 咋配、各种插件咋使、JSX 咋写、依赖注入咋弄……
退一万步讲,Web Component 跟三大框架也不是对立的啊。很可能未来有一天,三大框架就支持最后打包成 Web Component 了。甚至还可能出现了支持 Web Component 的新框架。
P.S. 三大框架同时还在解决工程上的问题,但这就不是 Web Component 的目标。工程问题就不展开谈了。