文章插图
前言近两年前端技术层出不穷,目前市面上已经有了很多供前端人员使用的开发框架,转眼19年已过大半,前端框架领域日趋成熟,实现了三足鼎立的局面,截止到10月22日,Angular,react和vue数据统计如下图所示:
文章插图
最近在学习使用框架的时候,分别使用vue和react开发了两个移动端产品,对这两个框架的学习曲线有了一些感悟,这两个都是现在比较热门的js框架,它俩在使用方式上和学习复杂度上还是有很大区别的,这里简单总结下两者的差异 。
主要从以下几个方面入手方面展开:
- 框架的诞生
- 设计思想
- 编写语法
- 脚手架构建工具
- 数据绑定
- 虚拟DOM
- 指令
- 性能优化
- 原生渲染native
- ssr服务端渲染
- 生命周期函数
- 销毁组件
- 状态集管理工具
react起初facebook在建设instagram(图片分享)的时候,因为牵扯到一个东西叫数据流,那为了处理数据流并且还要考虑好性能方面的问题,Facebook开始对市场上的各种前端MVC框架去进行一个研究,然而并没有看上眼的,于是Facebook觉得,还是自己开发一个才是最棒的,那么他们决定抛开很多所谓的“最佳实践”,重新思考前端界面的构建方式,他们就自己开发了一套,果然大牛创造力还是很强大的 。
React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JAVAScript MVC 框架,都不满意,就决定自己写一套,用来架设Instagram 的网站 。做出来以后,发现这套东西很好用,就在2013年5月开源了 。
设计思想vuevue的官网中说它是一款渐进式框架,采用自底向上增量开发的设计 。这里我们需要明确一个概念,什么是渐进式框架 。在声明式渲染(视图模板引擎)的基础上,我们可以通过添加组件系统(components)、客户端路由(vue-router)、大规模状态管理(vuex)来构建一个完整的框架 。Vue从设计角度来讲,虽然能够涵盖所有这些内容,但是你并不需要一上手就把所有东西全用上,因为没有必要 。无论从学习角度,还是实际情况,这都是可选的 。声明式渲染和组建系统是Vue的核心库所包含内容,而客户端路由、状态管理、构建工具都有专门解决方案 。这些解决方案相互独立,你可以在核心的基础上任意选用其他的部件,不一定要全部整合在一起 。可以看到,所说的“渐进式”,其实就是Vue的使用方式,同时也体现了Vue的设计的理念 。
reactreact主张函数式编程,所以推崇纯组件,数据不可变,单向数据流,当然需要双向的地方也可以手动实现,比如借助 onChange 和 setState 来实现一个双向的数据流 。而vue是基于可变数据的,支持双向绑定,它提供了v-model这样的指令来实现文本框的数据流双向绑定 。
编写语法vuevue推荐的做法是webpack+vue-loader的单文件组件格式,vue保留了html、css、js分离的写法,使得现有的前端开发者在开发的时候能保持原有的习惯,更接近常用的web开发方式,模板就是普通的html,数据绑定使用mustache风格,样式直接使用css 。其中<style>标签还提供了一个可选的scoped属性,它会为组件内 CSS 指定作用域,用它来控制仅对当前组件有效还是全局生效 。
模板和JSX是各有利弊的东西 。模板更贴近我们的HTML,可以让我们更直观地思考语义结构,更好地结合CSS的书写 。
同时vue也支持JSX语法,因为是真正的JavaScript,拥有这个语言本身的所有的能力,可以进行复杂的逻辑判断,进行选择性的返回最终要返回的DOM结构,能够实现一些在模板的语法限制下,很难做到的一些事情 。
推荐阅读
- 腾讯会议电脑上怎么用
- 杜仲雄花茶的泡法,金银花茶的功效作用
- 菊花能用水煮着喝吗,孕妇能喝玫瑰花茶吗
- 如何防止服务器被入侵?
- 超实用的18个Java8日期处理的实践!建议收藏!
- 雪菊花茶功效与作用有哪些,菊花茶的功效有哪些
- 喝茉莉薄荷茶的好处有哪些,玫瑰花茶的副作用有哪些
- 不得不知道的一些docker知识,devops使用太频繁了
- 喝洛神花茶的功效与好处,洛神花茶的功效及其作用
- 用胖大海泡水次几个,玫瑰花茶泡水喝的功效