深入探讨前端框架react


Posted in Javascript onDecember 09, 2015

摘要:

      最近公司要做一个嵌套在app中的应用,考虑着用Facebook的react来开发view,所以就研究了下。下面是我在开发中遇到的坑,希望能给你帮助。

项目地址:https://github.com/baixuexiyang/react
Issue:https://github.com/baixuexiyang/react/issues

欢迎star和fork!

react优势:

 •仅仅只要表达出你的应用程序在任一个时间点应该长的样子,然后当底层的数据变了,React 会自动处理所有用户界面的更新。

•数据变化后,React 概念上与点击“刷新”按钮类似,但仅会更新变化的部分。

 •React 都是关于构建可复用的组件,使代码复用、测试和关注分离(separation of concerns)更加简单。

注意点:

 1.加载组件的首字母大写,比如:<HeaderComponent />
 2.每一个组件的render最外层都要有一个包裹元素

 3.this.props不能修改,this.state可以修改

 4.页面oclick事件在ios中的Safari不起效果,onClick={this.detail.bind(this, item)} 需要使用其他方式,比如jQuery的绑定事件

 5.string转换成html,dangerouslySetInnerHTML={{__html: ''}}

 6.getInitialState:在组件挂载之前调用一次。返回值将会作为 this.state 的初始值。

getDefaultProps:在组件类创建的时候调用一次,然后返回值被缓存下来。如果父组件没有指定 props 中的某个键,则此处返回的对象中的相应属性将会合并到 this.props (使用 in 检测属性)。

 该方法在任何实例创建之前调用,因此不能依赖于 this.props。另外,getDefaultProps() 返回的任何复杂对象将会在实例间共享,而不是每个实例拥有一份拷贝。

 组件的生命周期:

componentWillMount:

服务器端和客户端都只调用一次,在初始化渲染执行之前立刻调用。

componentDidMount:

在初始化渲染执行之后立刻调用一次,仅客户端有效(服务器端不会调用)。

componentWillReceiveProps:

在组件接收到新的 props 的时候调用。在初始化渲染的时候,该方法不会调用。

shouldComponentUpdate:

在接收到新的 props 或者 state,将要渲染之前调用。该方法在初始化渲染的时候不会调用,在使用 forceUpdate 方法的时候也不会。

如果确定新的 props 和 state 不会导致组件更新,则此处应该 返回 false。

componentWillUpdate:

在接收到新的 props 或者 state 之前立刻调用。在初始化渲染的时候该方法不会被调用。

componentDidUpdate:

在组件的更新已经同步到 DOM 中之后立刻被调用。该方法不会在初始化渲染的时候调用。

componentWillUnmount:

在组件从 DOM 中移除的时候立刻被调用。

小结:

使用react开发,所有html都写在js文件里,所以开发起来不是很顺畅。推荐一个chrome插件:React Developer Tools

对于React,有一些认识误区,在此总结一下:

React不是一个完整的MVC框架,最多可以认为是MVC中的V(View),甚至React并不非常认可MVC开发模式;
React的服务器端Render能力只能算是一个锦上添花的功能,并不是其核心出发点,事实上React官方站点几乎没有提及其在服务器端的应用;

有人拿React和Web Component相提并论,但两者并不是完全的竞争关系,你完全可以用React去开发一个真正的Web Component;

React不是一个新的模板语言,JSX只是一个表象,没有JSX的React也能工作。

以上所述是关于前端框架react相关知识的全部内容,希望大家喜欢。

Javascript 相关文章推荐
fromCharCode和charCodeAt 方法
Dec 27 Javascript
cument.execCommand()用法深入理解
Dec 04 Javascript
js实现浏览器的各种菜单命令比如打印、查看源文件等等
Oct 24 Javascript
页面加载完后自动执行一个方法的js代码
Sep 06 Javascript
Javascript前端UI框架Kit使用指南之kitjs事件管理
Nov 28 Javascript
JavaScript DOM操作表格及样式
Apr 13 Javascript
javascript获取本机操作系统类型的方法
Aug 13 Javascript
JS实现点击事件统计的简单实例
Jul 10 Javascript
基于Vue自定义指令实现按钮级权限控制思路详解
May 23 Javascript
微信小程序js文件改变参数并在视图上及时更新【推荐】
Jun 11 Javascript
element-ui 时间选择器限制范围的实现(随动)
Jan 09 Javascript
详解Vue中CSS样式穿透问题
Sep 12 Javascript
JavaScript中rem布局在react中的应用
Dec 09 #Javascript
js获取鼠标位置实例详解
Dec 09 #Javascript
JavaScript常用基础知识强化学习
Dec 09 #Javascript
AngularJS实现元素显示和隐藏的几个案例
Dec 09 #Javascript
谈谈AngularJs中的隐藏和显示
Dec 09 #Javascript
jquery插件ajaxupload实现文件上传操作
Dec 09 #Javascript
js实现卡片式项目管理界面UI设计效果
Dec 08 #Javascript
You might like
PHP中的串行化变量和序列化对象
2006/09/05 PHP
php抓取页面与代码解析 推荐
2010/07/23 PHP
PHP正确配置mysql(apache环境)
2011/08/28 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
2013/04/26 PHP
js 蒙版进度条(结合图片)
2010/03/10 Javascript
jquery实现input输入框实时输入触发事件代码
2014/01/28 Javascript
jquery解析JSON数据示例代码
2014/03/17 Javascript
利用函数的惰性载入提高javascript代码执行效率
2014/05/05 Javascript
使用delegate方法为一个tr标签加一个链接
2014/06/27 Javascript
JavaScript中的lastIndexOf()方法使用详解
2015/06/06 Javascript
全面解析JavaScript中的valueOf与toString方法(推荐)
2016/06/14 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
2016/07/12 Javascript
推荐10款扩展Web表单的JS插件
2017/12/25 Javascript
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
2018/03/15 Javascript
纯javascript前端实现base64图片下载(兼容IE10+)
2018/09/14 Javascript
JavaScript惰性求值的一种实现方法示例
2019/01/11 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
2019/07/12 jQuery
vue单页应用的内存泄露定位和修复问题小结
2019/08/02 Javascript
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
2020/03/08 Javascript
JavaScript检测浏览器是否支持CSS变量代码实例
2020/04/03 Javascript
[01:31:03]DOTA2完美盛典全回顾 见证十五项大奖花落谁家
2017/11/28 DOTA
举例介绍Python中的25个隐藏特性
2015/03/30 Python
Python性能提升之延迟初始化
2016/12/04 Python
对numpy中轴与维度的理解
2018/04/18 Python
python实现自动化报表功能(Oracle/plsql/Excel/多线程)
2019/12/02 Python
Python 如何查找特定类型文件
2020/08/17 Python
用HTML5.0制作网页的教程
2010/05/30 HTML / CSS
廉价航班、机票和酒店:JustFly
2018/02/07 全球购物
日本索尼音乐商店:Sony Music Shop
2018/07/17 全球购物
销售内勤岗位职责
2014/04/15 职场文书
化学专业毕业生求职信
2014/07/28 职场文书
开幕式邀请函
2015/01/31 职场文书
2015年外联部工作总结
2015/04/03 职场文书
2015年秋季灭鼠工作总结
2015/07/27 职场文书
员工旷工检讨书
2015/08/15 职场文书
乔迁新居祝福语
2019/11/04 职场文书