什么是前端“组件化”开发(前端组件化开发模块化)

1、前后端分离

在传统开发模式下,网页的每次改动都需要前端人员和后端人员共同参与才能完成,网站前后端的开发人员需要很大的沟通成本、协调成本。企业招人的时候,也不得不招一些既懂前端又懂后端程序员,来减少前后端开发人员的冲突。例如,下面是一段JSP代码,我们可以看到,前后端语言是混在一起的:

在这段代码中,Java工程师不得不面对前端的HTML代码,前端工程师也不得不面对JSP的<%@ %>、这些语法。

那有没有一种办法让前端和后端的代码彻底分开呢?

那就得依靠前端技术的进步了。现在流行的前后端分离的开发模式,就是让后端只负责给前端提供数据,由前端负责整个页面的模板渲染、数据填充以及交互逻辑。

前后端分离之后,人们发现前端已经不再是传统意义上的网页了,它甚至还可以做成一个手机应用,或者做成是微信小程序那样的小型应用,它更接近于传统的B/S(客户端/服务器)架构,且仍然具备网页轻量级、无需下载和安装的优势。

2、前端为什么要组件化开发

组件化的目的是为了让页面中的各个部分可以被复用,以减少重复的代码。另一方面,也可以更好地使团队分工协作,让不同的人负责编写不同的组件。

前端页面可以借助某种框架(如Vue.js、React)来实现组件化开发,使代码更容易复用。此时,一个网页不再是由一个个独立的HTML、CSS和JavaScript文件组成的了,而是按照组件的思想将网页划分成一个个组件,如轮播图组件、列表组件、导航栏组件等。将这些组件拼装在一起,就形成一个完整的网页了。

组件化开发是需要借助某一种框架来实现的,这里我们以Vue.js框架为例。Vue.js把项目划分成dist目录和src目录,其作用如下:

1、src目录表示源码目录,它存放编译前的代码;

2、dist目录表示编译结果目录,它存放最终生成出来的网页。编译这个过程是由前端的自动化构建工具来实现的。

下面我们来看一下某个Vue.js项目的目录结构图:

需要注意的是,src目录下存放的是一些组件,这些组件的代码不能被浏览器识别,它必须被前端构建工具编译到dist目录下才能被浏览器识别,如下图所示。

dist目录下的结构和传统开发的目录结构很像,外层有个index.html文件,样式和逻辑代码分别放在了css和js目录中。

开发人员编写的代码保存在src目录下,这里面存放的是一些单文件组件,这些组件才是我们要重点关注的内容。

3、组件代码解析

使用Vue.js框架编写的单文件组件,以“vue”作为文件扩展名。当我们打开某个组件的文件后,会发现里面的代码主要分为3部分,即“模板代码”“逻辑代码”和“样式代码”,分别对应HTML结构、JavaScript逻辑和CSS样式,如下所示。

单文件组件中的这些代码,最终将被编译后放入一个完整的HTML页面中,这样就实现了把传统的一个完整的网页拆分成若干个组件,每个组件都有自己的HTML、CSS、JavaScript代码,当用到哪个组件时,只需在页面中引用哪个组件即可。

每一个项目都有一个最外层的模板index.html和最外层的组件App.vue,它们在项目中所处的位置如下所示:

最外层组件App.vue里面的代码在编译时会经过Vue.js的处理,它会被渲染到index.html中的一个id为app的

标签中,在index.html中我们可以找到这个标签:

页面中的组件是具有嵌套关系的,在最外层组件App.vue中,我们可以看到里面用到了一些子组件,这些子组件就是页面中的各个部分。App.vue代码如下。



在上图中, 是TAB栏组件,组件都以标签的形式来使用,标签的属性可以用来传递参数、绑定事件。

每个子组件都有自己的结构、逻辑和样式代码,子组件结构代码会被渲染到父组件对应的标签下,用来将子组件显示到页面中。

到这里,我们就对前端组件化开发有了一个比较清晰的认识。前端技术的发展,就是从网页制作变成了网页应用的开发,网页不再是一个只用来展示的页面,而是一个应用程序。组件化开发是为了提高代码的可复用性,以及方便团队分工协作开发。

原文链接:,转发请注明来源!