美文网首页
所有前端框架都在解决两个大问题:组件化和模块化

所有前端框架都在解决两个大问题:组件化和模块化

作者: 丁满_b1d6 | 来源:发表于2018-11-23 08:35 被阅读0次

    共同问题一:如何实现组件化

    组件化有两个好处:

    功能封装

    跨项目复用

    所有框架,无论用什么语言来实现,都有一些基本的问题需要解决。

    一、如何设计组件的生命周期?

    虽然技术细节有差异,但是基本的结构是类似的,都需要经历几个基本的阶段:初始化、渲染、存活期、销毁。

    二、组件之间如何通讯?

    OK,无论什么 UI 框架,有了 UI 组件之后,紧接着就需要解决组件间通讯的问题。

    你只要能解决以下 3 种情况就能解决绝大部分的问题了:父子间如何通讯?兄弟间如何通讯?远房亲戚之间如何通讯?

    无论哪种框架,典型的解决方案有 3 种:父子之间通过事件或者直接调用进行通讯;兄弟、远房亲戚之间利用事件总线进行通讯;利用 cookie、localstorage、甚至服务端 session 进行通讯。

    三、如何管理组件的状态?

    UI 组件不仅仅有外观,外观只是一张画皮,里面要有数据才行,既然有数据,就要有状态管理的问题。

    在状态管理这块,需要仔细设计这些问题:是否需要双向绑定?如何配合路由保持组件状态?

    四、组件样式怎么做?

    因为是前端框架,所以美观的问题也不能放松。所幸的是,在移动互联网时代,用户都已经习惯了“扁平化”、“极简主义”这些设计风格,我们可以利用市面上现有的 CSS 样式库来给我们的组件“化妆”。

    共同问题二:如何实现模块化

    如你所知,在 Java 里面,我们有完善的 Class/Package/Jar/ClassLoader 这些机制的支持。当 JVM 发现所需要的 .class 文件没有加载的时候,它自己会使用 ClassLoader 去加载,不需要程序员自己操心。

    但是在 JS 里面不行,由于 JavaScript 这门语言本身的缺陷,它没有提供完善的模块化支持,这就导致了所有前端框架必须自己解决模块化的问题。

    但是,值得庆幸的是,我们有了 Node.js,有了 Webpack,再也不用像前几年那样自己搞 RequireJS 了!这就是为什么市面上主流的前端框架都使用 Webpack 来做自己的 CLI 的原因。

    总结:无论你目前在使用什么前端框架,无论你以后想学哪些前端框架,只要紧紧扣住“组件化”和“模块化”这两条主线,心里就会有大方向了,绝对不会迷失在茫茫多的技术细节里面。

    ---------------------

    作者:GitChat的博客

    来源:CSDN

    原文:https://blog.csdn.net/valada/article/details/84344756

    版权声明:本文为博主原创文章,转载请附上博文链接!

    相关文章

      网友评论

          本文标题:所有前端框架都在解决两个大问题:组件化和模块化

          本文链接:https://www.haomeiwen.com/subject/mdydqqtx.html