前端为何要组件化——看山还是山

前端组件化,将页面中的各个部分分割成单独的一部分进行开发,在和别人协同工作的时候能够有效、独立的进行开发,比如你写你的header,我写我的footer,写好了往index里面加,我的模块只影响我,包括css、js。

前端页面中,能够让浏览器渲染出效果需要的其实说到底就3个东西:HTML(结构)、CSS(样式)、JavaScript(行为)。不管是VUE、Angular还是jQuery等框架,之所以叫做框架就是因为他并没有改变本质上的东西,比如jQuery中获取元素 $("#container")就等于document.getElementByID("container"),只是在我们编写代码的过程中框架对其进行了转换。所以面对前端中这么多框架,还是要保持初心,前端三大件还是三大件。

以VUE组件化为例子说明

HTML (结构):被VUE封装在<template>中,

CSS(样式):对应<style>

JavaScript:对应<script>

图1:VUE+webpack初始化APP.vue文件

这三个模块也是VUE中一个组件的构成部分,接下来说一说我对它的理解。

结合上面所说的“前端三大件还是三大件”。首先<template>可以想成我们页面中某个组件的容器,我们想在页面中呈现某个内容,肯定要一个容器作为载体,不管是body还是div。在<template>中存放的就是组件的html结构。

接下来是样式控制<style>,这点比较好理解,和之前我们没有使用组件化开发比较

HTML文档<template>

想象我们在之前要开发一个通用的导航栏模块

我们需要在每个页面中编写上图这段代码,并且引入该导航栏的css样式文件和js文件(一般这里我们会将通用的样式文件和js文件整合到一个css文件或者js文件中)。而现在,使用了组件化开发之后,我们仅仅需要在需要的页面中引入import navi from ‘navi.vue’,从代码数量来说大大减少工作量,虽然这部分是可以通过复制粘贴实现,但是这样导入后 ,会让代码结构更清晰。

接下来谈谈样式<style>

图3:vue初始化中Hello.vue中的<style>

在谈vue中的<style>的时候,我们必须先了解<style scoped>这个属性,也就是图3中20行的标签,这个属性的作用是将style样式只在当前容器中生效。在以往设计页面的时候,我们需要单独对某个span进行样式设定,需要我们从上往下一层一层确定该span的位置,现在我们可以使用<style scoped>限定css生效的位置,而不用担心影响到页面中的其它元素,在HTML中新增这个属性也说明了前端组件化的一个趋势。

JavaScript——<script>

相信上面两个部分已经让你初步了解到组件化的概念和目的,现在来谈谈js,js的影响就不细谈,这里就说说VUE开发中,我们的js如何运作。首先我们在官网上和各种渠道也了解到,VUE是一个基于数据的MVVM框架,所以,我们在使用VUE进行开发的时候,本质上是对数据进行操作。举个例子,我想通过改变input的值让它在不同的背景颜色中变化,原来的方式是先输入,然后使用keyup事件通过if判断,再进行对它的样式改变。现在使用VUE的数据绑定后,我就可以省去这个遍历,使用v-if就可以达到想要的效果,并且是实时更新的。

面对前端各种层出不穷的框架,看山  还是山。

时间: 2024-08-08 09:38:42

前端为何要组件化——看山还是山的相关文章

前端web应用组件化(一) 徐飞

https://github.com/xufei/blog/issues/6 Web应用的组件化(一) 基本思路 1. 为什么要做组件化? 无论前端也好,后端也好,都是整个软件体系的一部分.软件产品也是产品,它的研发过程也必然是有其目的.绝大多数软件产品是追逐利润的,在产品目标确定的情况下,成本有两个途径来优化:减少部署成本,提高开发效率. 减少部署成本的方面,业界研究得非常多,比如近几年很流行的“去IOE”,就是很典型的,从一些费用较高的高性能产品迁移到开源的易替换的产品集群,又比如使用Lin

到底是什么是前端工程化、模块化、组件化

引言 提到前端往往很多人的映像就是入门简单,HTML.CSS加一起一个星期基本上就能大概上手,JS难一点但也能很快写一些简单的小效果,在网上随便一搜索各种特效代码随意用,一个新手前端也能在很短的时间里写出炫酷的页面效果,然而入门简单并不意味着前端这碗饭很好吃,做惯了切图.布局.扣特效的前端新同学在向前发展的路上越来越觉得吃力,而没有任何编程思想和软件开发基础很多人对前端工程化.组件化.模块化.MVC这些"高大上"的词汇云里雾里.本文用最简单的语言介绍一下我对工程化.组件化.模块化的理解

前端工程化、模块化、组件化见解

前端往往很多人的映像就是入门简单,HTML.CSS加一起一个星期基本上就能大概上手,JS难一点但也能很快写一些简单的小效果,在网上随便一搜索各种特效代码随意用,一个新手前端也能在很短的时间里写出炫酷的页面效果,然而入门简单并不意味着前端这碗饭很好吃,做惯了切图.布局.扣特效的前端新同学在向前发展的路上越来越觉得吃力,而作为前端从业人员我们需要有编程思想和软件开发基础. 提到前端往往很多人的映像就是入门简单,HTML.CSS加一起一个星期基本上就能大概上手,JS难一点但也能很快写一些简单的小效果,

Web应用的组件化(一)

基本思路 1. 为什么要做组件化? 无论前端也好,后端也好,都是整个软件体系的一部分.软件产品也是产品,它的研发过程也必然是有其目的.绝大多数软件产品是追逐利润的,在产品目标确定的情况下,成本有两个途径来优化:减少部署成本,提高开发效率. 减少部署成本的方面,业界研究得非常多,比如近几年很流行的“去IOE”,就是很典型的,从一些费用较高的高性能产品迁移到开源的易替换的产品集群,又比如使用Linux + Mono来部署.net应用,避开Windows Server的费用. 提高开发效率这方面,业界

Web应用的组件化

基本思路 1. 为什么要做组件化? 无论前端也好,后端也好,都是整个软件体系的一部分.软件产品也是产品,它的研发过程也必然是有其目的.绝大多数软件产品是追逐利润的,在产品目标确定的情况下,成本有两个途径来优化:减少部署成本,提高开发效率. 减少部署成本的方面,业界研究得非常多,比如近几年很流行的"去IOE",就是很典型的,从一些费用较高的高性能产品迁移到开源的易替换的产品集群,又比如使用Linux + Mono来部署.net应用,避开Windows Server的费用. 提高开发效率这

【转】Web应用的组件化开发(一)

原文转自:http://blog.jobbole.com/56161/ 基本思路 1. 为什么要做组件化? 无论前端也好,后端也好,都是整个软件体系的一部分.软件产品也是产品,它的研发过程也必然是有其目的.绝大多数软件产品是追逐利润的,在产品目标确定的情况下,成本有两个途径来优化:减少部署成本,提高开发效率. 减少部署成本的方面,业界研究得非常多,比如近几年很流行的“去IOE”,就是很典型的,从一些费用较高的高性能产品迁移到开源的易替换的产品集群,又比如使用Linux + Mono来部署.net

JS 组件化开发 系列(一)

JS 组件化开发 系列 作为前端开发,组件化开发是你成长的必经之路.时间的积累逐渐摸索出自己比较好的开发方式. --- zenking (1)实现最简单的组件化: var jdb ={ alert: function(str) { alert(str); }, console:function (str) { console.log(str) } } 这样就是简单的实现 jdb.alert.jdb.console 两个方法. 但是呢? 现在需求改了, 需要实现链式调用. 就是像jquery 一样

谈谈我对前端组件化中“组件”的理解,顺带写个Vue与React的demo

前言 前端已经过了单兵作战的时代了,现在一个稍微复杂一点的项目都需要几个人协同开发,一个战略级别的APP的话分工会更细,比如携程: 携程app = 机票频道 + 酒店频道 + 旅游频道 + ...... 每个频道有独立的团队去维护这些代码,具体到某一个频道的话有会由数十个不等的页面组成,在各个页面开发过程中,会产生很多重复的功能,比如弹出层提示框,像这种纯粹非业务的UI,便成了我们所谓的UI组件,最初的前端组件也就仅仅指的是UI组件. 而由于移动端的兴起,前端页面的逻辑已经变得很重了,一个页面的

闲话js前端框架(4)——组件化?有没有后端的事?

闲话js前端框架 前端人员=美工+设计+代码+测试 --题记 专题文章: 一.从avalonjs的模板说起 二.庞大的angularjs 三.再也不想碰DOM 四.组件化?有没有后端的事? 五.再看自己一年前设计的微型渲染引擎 六.在浏览器标准上做文章 七.抛开浏览器,构建应用容器 八.为何Flash.银光和Java都在网页端一蹶不振 本文属 西风逍遥游 原创, 转载请注明出处: 西风世界 http://blog.csdn.net/xfxyy_sxfancy 四.组件化?有没有后端的事? 提到组