随着互联网技术的发展,国内外出现了如此多的前端框架,那每个框架之间的区别到底是什么? 例如这三个MVVM框架angulajs react.js vue.js,这些框架他们都是为了解决某些问题,每个框架的侧重点不一样,比如某些框架是侧重于界面效果的,有些是侧重于移动端的,有些是侧重于一些常用的组件复用和特效等
Vue.js 和 AngularJS 有什么区别?
Vue.js 向 Angular 学习了很多优秀的特性,最重要的就是用指令 (Directive) 来扩展 HTML 的语法,并实现 DOM 操作和数据逻辑的分离。但同时 Vue.js 也有以下优势:
- 1.Vue.js 更轻巧,API 更友好,不强迫你所有的代码都遵循 Angular的各种规定,使用场景更加灵活。
- 2.Vue.js 比 Angular 简单易学得多。
- 3.Vue.js 不依赖 dirty checking,性能比 Angular 高,在移动应用中尤其明显。
- 4.Vue.js 的组件 (Component) 和指令 (Direcitve) 概念区分比较明确。指令只管数据绑定和 DOM 操作,而组件则是一个包含模版、数据逻辑、私有部件的独立单元。Angular 里两者之间的界限比较模糊。
当然,Vue.js 目前还是个新生项目,而 Angular 的生态系统更为成熟,本身也经历过足够的生产环境的考验,测试相关的工具也更加完善。
Vue.js 和 React.js 有什么区别?
React 在定位上和 Vue.js 很相近:都是专注于 View 层面,并且都是组件化的理念。但内部实现上两者有很大区别。React 链接数据的视图的方式是在内存中模拟 DOM ,在数据变化后比较分析两次渲染的不同,最后将变化施加在实际的 DOM 上。
Vue.js 则是将实际的 DOM 作为模版,数据直接绑定到具体的 DOM node 上,当数据变化的时候只需要对绑定的 node 进行精确的操作即可。两者孰优孰劣很难说,要视具体使用场景而定。Vue.js 相对 React 有一个优点就是 Directive 的可扩展性,通过自定义 Directive,开发者可以在需要的时候对 DOM 进行复杂的操作,并且保持这些操作和数据逻辑的分离;而在 React 中,由于 HTML 是直接通过 JSX 格式包含在 JavaScript 代码中的,视图和逻辑很容易结合得非常紧密,后期可能不利于维护。