现在主流框架都以组件作为基本的抽象单元,而最早的前端开发是以页面为单位,所有的html、css、js都在一个页面里面,随着后来慢慢由页面转到了应用,出现了模块封装、切分的需求,很快就发现应用其实可以抽象为组件树的,组件树的理解其实是以一种偏展示层的理解方式,react在这个领域最大的贡献就是揭示了一个事实----组件可以是函数。整个应用是一个大的函数,每个组件是一个函数,每个组件又可以调用其它的函数。vue中组件是可复用的 Vue 实例。我们可以在一个通过 new Vue 创建的 Vue 根实例中,把这个组件作为自定义元素来使用,它们与 new Vue 接收类似例如 data、computed、watch、methods 以及生命周期钩子这样相同的选项,个人理解组件可分为以下几类:
1.展示型
2.接入型 比如container,这类组件会与数据层的severs打交道,会包含一些跟服务器端数据端交互的逻辑,它会把数据往下传传给比较简单的展示型组件
3.交互型 比如各类加强版的表单组件,大部分的现成组件库,比如element ui 都是以交互型的组件为主,这一类组件会有比较复杂的交互逻辑,但又是一种非常通用的组件,所以通常强调复用,
4.功能型 比如 <router-view>,<transition>,比较抽象,它其实并不渲染任何内容,作为一种扩展、抽象机制存在。
转载于:https://blog.51cto.com/13550695/2113756