博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
React.js 常用技术要点
阅读量:5921 次
发布时间:2019-06-19

本文共 1240 字,大约阅读时间需要 4 分钟。

最近在公司的一个移动端WEB产品中使用了React这个框架(并不是React-Native),记录一下在开发过程中遇到的各种问题以及对应的解决方法,希望能对读者有所帮助。

React原则

React不多做介绍,就是Facebook的一个开源JS框架,专注的层面为View层,不包括数据访问层或者那种Hash路由(不过React有插件支持),与Angularjs,Emberjs等大而全的框架不同,React专注的中心是Component,即组件,React认为一切页面元素都可以抽象成组件,比如一个表单,或者表单中的某一项。

常用技术要点

props

每一个组件都有可变与不可变的属性,props就是不可变的属性,当props改变时,组件的绘制方法不会被调用。

states

states就是组件的可变属性,states的改变会触发组件的render函数,react与其他mvvm框架的最大的不同点就是,react组件可以想象成一个状态机,状态的改变会重绘UI,然后根据 dom diff 算法来绘制UI,而其他的mvvm框架则是对js对象的dirty check(Angularjs)或者defineProperty时指定的回调函数(Emberjs),因此,状态机制与dom diff的存在声称React更快。

我们在设计React组件时如何灵活的运用props与state是一个非常关键的要点。

refs

refs这个点主要用在上级组件调用下级组件的场景,这个场景非常多见。

componentDidMount

组件UI渲染完毕后调用,常用在这种业务场景:调用ajax获得数据后,渲染UI。

state的改变会触发render

正如上文中所说,React组件是一个一个状态机,state的改变会改变状态,会触发重绘,对于state的设计是对React组件设计的关键。

各种坑

触摸事件

React中的触摸事件仅用三种,touchstart, touchend, touchend,可是这种会有问题,有时候我需要滚动页面的时候,很容易触发某一个元素的touchend事件,为此笔者找了一个React第三方组件,。

还无意中发现一个Android与iOS的不同之处

input在disable且readonly之后,onClick会在iOS上触发不起来,onTouchEnd又会在Android上把键盘弹出来,这边笔者做了个Hack,iOS下用onTouchEnd,Android下用onClick,就正常了。

高级技术要点

mixin

曾经跟一个朋友讨论,封装utils模块为纯js模块好还是React式的模块好的问题,他给我了一个概念,,本来自己在开发中确实写了很多可复用的小组件,但由于没有过多的了解React周边的相关知识,因此忽略了,笔者认为以后可以探究一下这个技术点。

 

转载于:https://www.cnblogs.com/sunshq/p/4497672.html

你可能感兴趣的文章
NodeJS学习目录
查看>>
Spring 学习7 -事务
查看>>
mysql中insert into select from的使用
查看>>
Linux netstat命令详解
查看>>
quartz + spring 配置示例
查看>>
C++基础之全局变量
查看>>
父子组件间的通信
查看>>
JMX超详细解读<转>
查看>>
iOS CoreData 介绍和使用(以及一些注意事项)
查看>>
ASP.NET Web API之消息[拦截]处理(转)
查看>>
Ubuntu系统下为IDEA创建启动图标
查看>>
矩表 - 现代数据分析中必不可少的报表工具
查看>>
gradle的安装,配置,构建,研究,初体验......(入职一周研究的第一个大知识点)...
查看>>
Android 开发常用版本控制命令
查看>>
spark rdd median 中位数求解
查看>>
(2)Java数据结构--二叉树 -和排序算法实现
查看>>
ubuntu里面设置颜色
查看>>
Debug目录、Release目录,bin目录、obj目录,vshost.exe.config文件、.exe.config文件分析【C#】...
查看>>
定时器0方式2 方式3
查看>>
使用正則表達式对URL进行解析
查看>>