一,关于响应式数据更新方式的实现

1)只有在data里面定义的数据才会有响应式更新

vue依赖的defineProperty的数据劫持加上依赖数据,实现数据的响应式更新。可以称之为依赖式的响应。因为依赖所以注定了只会更新与data相关的数据。

2)react则是更新在state里面定义的数据

this.setState()方法背后除了事件队列的收集之后的统一修改,生成新的react树,通过diff算法计算出哪里需要修改。

为了避免多余的数据更新,可以使用react生命周期函数当中的shouldComponentUpdate这个方法对输入的props和state做对比,终止多余的数据更新操作。

3)关于vuex

vuex只能用在vue上面。

vuex和redux分别是vue和react的状态管理工具。

vuex和redux都是共享状态,前者在状态更新上,利用了vue自身自带的依赖数据更新方式,通过将vuex的store诸如到根实例的方式,注入到各个组件当中。

4)redux

redux实现了redux的完全解耦,可以用在react上面,也可以用在ng上面。

redux同样借助Provider这个根组件,将store注入到上下文context中,但其实现响应式数据更新的方式,是通过发布订阅模式结合共享数据的方式:也就是通过复制路径数据,新路径数据与原有状态作对比的方式,实现变化的数据更新。这样就实现了数据更新的优化。

问题是上面方法只是进行浅层数据的比较,这就导致如果props是一个引用数据,依然会存在浪费,这个时候就需要保证每次传入的是同一个对象。

而其他组件部分,没有通过connect连接的则仍然需要shouldComponentupdate优化。

相比较而言,vuex明显更为直接。

二,vue-router和react-router

vue路由的思维方式更符合中国人的思维,一个占位符router-view,显示不同内容。且也是注入的方式注入到根实例中。且路由组件明显分离。

react路由在写法上面包含根组件(不算redux的Provider),没有vue的占位符概念,而是多个route共同构成的占位符。

vue的嵌套路由比react更为直观,react的嵌套路由只能分散开。

react没有全局路由守卫的概念。

三,其它

react知识v层,vue是vm层。

真正来说redux更加解耦,vue的全家桶反而仅仅只能给vue用。

vue的核心要比react的更加智能,但vue全家桶则不如react全家桶解耦。

但正因为redux相关库的强解耦,导致使用redux需要更多的组件进行性能优化,比如需要react-redux,需要redux-ignore等。这点来说反倒不如vue便于开发和维护。

vue依据的是.vue文件构建的组件化系统,react依据的是React.Component这个类。

二者都在构建一个这样的系统:通过增加代码就能增加系统的功能,而不是通过对现有代码的修改来增加功能。

不断更新……

2018.11.4

react相对vue更灵活这点是从jsx语法本身来说。vue有着更多的api,而react因为本质依然是js,所以api并不多。

react整体上面是模板方法模式。

Vue于React特性对比(二)的更多相关文章

  1. Vue于React特性对比(三)

    最近重学React,再次和vue做了对比. 一,为官方插件提供便利的第三方插件横行 React仅仅是一个ui框架.虽然官方提供了redux,react-router:但也有第三方的redux-thun ...

  2. Vue于React特性对比(四)

    新开了一个vue的项目,从vue单页面框架搭建到单点登录接入都是自己负责搞的.然后准备将这套东西迁移到react上.然后有了这篇文章. 1,reactjs分环境打包明显要比vue更为麻烦 vue修改的 ...

  3. Vue和React的对比

    今晚我们来搞一搞Vue和React的对比好吧,话不多说今天我们直接开搞可好,各位小老板,开始吧 1. react整体是函数式的思想,把组件设计成纯组件,状态和逻辑通过参数传入, 所以在react中,是 ...

  4. Vue于React特性简单对比(一)

    一,对象实体对比 vue的对象实体依然是html,而react的对象实体已经变味jsx,一种新的语法结构. vue的html与react的jsx都可以进行拆分,拆分成更细小的组件,组件之间可以传值. ...

  5. vue和react全面对比(详解)

    vue和react对比(详解) 放两张图镇压小妖怪 本文先讲共同之处, 再分析区别 大纲在此: 共同点: a.都使用虚拟dom b.提供了响应式和组件化的视图组件 c.注意力集中保持在核心库,而将其他 ...

  6. vue、React Nactive的区别(转载)

    Vue与React的对比 Vue.js与React.js从某些反面来说很相似,通过两个框架的学习,有时候对一些用法会有一点思考,为加深学习的思索,特翻阅了两个文档,从以下各方面进行了对比,加深了对这两 ...

  7. Vue和React对比

    Vue和React对比 Vue也已经升级到2.0版本了,到现在为止(2016/11/19)比较流行的MVVM框架有AngularJS(也有人认为其为MVC).ReactJS和VueJS,这三个框架中, ...

  8. vue,angular,react框架对比

    转载自:https://www.cnblogs.com/hubgit/p/6633214.html 首先,我们先了解什么是MVX框架模式? MVX框架模式:MVC+MVP+MVVM 1.MVC:Mod ...

  9. 前端开发 vue,angular,react框架对比1

    转载自:https://www.cnblogs.com/hubgit/p/6633214.html 首先,我们先了解什么是MVX框架模式? MVX框架模式:MVC+MVP+MVVM 1.MVC:Mod ...

随机推荐

  1. sqli-labs(less-11-16)

    POST登入 首先试试 uname=admin'# & passwd=1 登入成功 如果不知道用户名 ,注释符被过滤,可以从password入手 一般第一个登陆字段(一般是用户名)就用注释,第 ...

  2. NodeJs实现简单的爬虫

    1.爬虫:爬虫,是一种按照一定的规则,自动地抓取网页信息的程序或者脚本:利用NodeJS实现一个简单的爬虫案例,爬取Boss直聘网站的web前端相关的招聘信息,以广州地区为例: 2.脚本所用到的nod ...

  3. JournalNode的作用

    NameNode之间共享数据(NFS .Quorum Journal Node(用得多)) 两个NameNode为了数据同步,会通过一组称作JournalNodes的独立进程进行相互通信.当activ ...

  4. 学号20155311 2016-2017-2 《Java程序设计》第6周学习总结

    学号20155311 2016-2017-2 <Java程序设计>第6周学习总结 教材学习内容总结 第十章 输入/输出 10.1 InputStream与OutputStream Inpu ...

  5. 20155318 《Java程序设计》实验五 (网络编程与安全)实验报告

    20155318 <Java程序设计>实验五 (网络编程与安全)实验报告 实验内容 了解计算机网络基础 掌握Java Socket编程 理解混合密码系统 掌握Java 密码技术相关API的 ...

  6. echarts y轴,显示数据,但不显示竖线

    在yAxis中插入: axisLine: {show:false}, axisTick: {show:false}, yAxis : [ { show:true, axisLine: {show:fa ...

  7. PowerDesigner 15学习笔记:十大模型及五大分类

    个人认为PowerDesigner 最大的特点和优势就是1)提供了一整套的解决方案,面向了不同的人员提供不同的模型工具,比如有针对企业架构师的模型,有针对需求分析师的模型,有针对系统分析师和软件架构师 ...

  8. 查询系统日期和时间(mysql)

    select current_date  --不带时间select sysdate()   或 SELECT NOW();  --带时间

  9. Hexo+gitment

    Gitment是一个基于GitHub问题的评论系统,可以在没有任何服务器端实现的前端使用. 演示页面 中文简介 特征 入门 方法 定制 关于安全 特征 GitHub登录 Markdown / GFM支 ...

  10. POJ-3273(二分)

    //题意:给出农夫在n天中每天的花费,要求把这n天分作m组, //每组的天数必然是连续的,要求分得各组的花费之和应该尽可能地小,最后输出各组花费之和中的最大值. //思路:看到各组最小和最大的,果断上 ...