React简介
1、起源于Facebook,2013年开源。 2、特点: 声明试设计(声明试是告诉计算机做什么,不管他怎么做,命令式是告诉计算机怎么做)。 高效:通过虚拟Dom,最大程度上减少真实Dom的交互。 灵活:约束小,可与已知的库和框架很好的配合。 JSX:js语法的扩展。 组件:通过面向对象使组件得到复用。 单向数据流:子集不能修改父集传过来的参数。 3:虚拟Dom:一个真实的JS对象,由于直接操作Dom就会发生回流,成本过高。 4:回流与重绘: 回流:当render树中的一部分或者全部因为大小距离等问题改变而需要重建的过程。 重绘:当元素的一部分属性发生变化,如外观背景,不会引起布局变化而需要重新渲染的过程。 回流必能引起重绘,重归不一定能引起回流。 5、浏览器如何渲染页面: HTML解析器,解析HTML结构,生成Dom树。 Css解析器,解析CSS的内链样式,生成样式表。 讲Dom树和样式表结合,生成Render树(每个Dom元素都有一个方法用来接收样式表信息,返回一个render对象,render对象编译生成render树)。 render树渲染完毕后浏览器会根据样式表来决定页面的位置。 6:专注视图层:专注提供清晰简介的View解决方案 注:vue和react本质是VC框架,配合第三方包(如Vuex)才是MVC框架。 7:函数化编程:结构化编程的一种 主要思想:把问题的解决方案写成一系列嵌套的函数调用 纯函数:作用与相同的输入,永远会得到相同的输出,没有任何可观察的副作用,也不会依赖外部环境的状态。 eg:Array.slice(不改变原数组)? ? ?纯函数 Array.splice(改变原数组)? ? ? ?不是纯函数 优点:有效降低系统的复杂性,可缓存性 柯里化函数:传递给函数的一部分用来调用他,让他返回一个函数去处理 剩下的参数 eg: var add=(x+y)=>x+y? ? 柯里化函 var add=(a)=>(b)=>a+b;add(3)(2)//5 是一种预加载函数的方法,通过传递较少的参数,得到一个已经记住了这些参数的新函数,是一种对参数的缓存。 函数组合:为了解决函数嵌套问题[Fn(g(f(x))],需要用到函数组合。 var compose =(f,g)={x=>f(g(x))} 函数化编程的优点:代码简介,开发快速。? ? 接近自然语言,易于理解 。? ? 更方便代码管理。? ?易于并发编程? ? ? 代码的热升级 8、vue与react的区别: 相同点:都使用的虚拟Dom 都提供了响应式和组件化的视图组件。 讲注意力集中保持在核心库,其他功能如路由和全局状态管理交给其他库。 不同点:优化性方面,react有自己的一套东西,shouldComponentUpdate用来减少一些不必要的虚拟Dom对比。 react用的是JSX语法,而Vue是将html,js,css放到Vue文件里。 react的css是写在单独的文件里,vue是写在vue文件里 react约束性小,灵活性大,使用原生JS较多,适合开发大型项目,vue灵活性小,约束性大(指令等)适合快速开发项目 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |