目前, 个人了解的前端比较流行的框架是三个:
BootStrap, React, Vue
想要为公司选一个作为接下来的前端技术研发方向, 因此作了一番调查, 有点浅见.
BootStrap:
特点是栅格系统, 使用简单, 上手容易. 专为响应式页面而生. 一套代码就可以自适应平板电脑和PC.
缺点在于, 缺少一套有力的成体系的组件(当时调查的时候还没有, 现在据说有了), 我在实际使用时, 发生了作用域冲突的问题, 如果没有整理好一整套组件, 开发很累.
React:
特点主要有2个:
1. 数据的单向响应.当数据发生变化的时候, React将会自动的管理UI界面更新
2. VisualDom(虚拟Dom). 由React来管理Dom树的变化, 开发者只需使用React的虚拟Dom进行开发, 页面的呈现会更快.
这个引申出了一个更大的优点: 虚拟Dom到真实Dom的映射, 是由React来控制的. 那么如果虚拟Dom映射为IOS或者Android呢? 于是React Native诞生了, 约80%的Reactive Native代码是可以同时支持IOS和Android的.
缺点在于, 最近React的GPL协议有变动, 容易引起商业问题...
Vue:
特点在于, 站在了React的肩膀上, 许多方面更出色了:
1. 数据的双向绑定. 数据改, 页面改. 页面改, 数据也改.
2. 页面的呈现据说比React还快.
3. 组件化(实际上React也有组件化). 这和BootStrap这种组件化的概念还有点不同, Vue的组件化, 已经把作用域冲突的问题给搞定了.另外, js测试也变得更专业化了(有点类似junit).
4. 单html开发. 它的开发模式, 是一个html, 然后不停替换组件对应的js来切换显示效果. html中的共通js和css只需要download一次, 理论上比Iframe页面的呈现更快.
5. 结合node.js提供的webpack等, 可以进行成体系的打包发布.
缺点在于, 上手难度比较高, 并且大规模开发的化, 需要有体系化开发的积累. Vue的组件化开发推荐使用Element: http://element.eleme.io/#/zh-CN/component/popover
结论:
长远考虑的话, 建议使用Vue+node.js. 短期内使用的话, BootStrap是个不错的选择.