深入探讨前端框架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 相关文章推荐
jquery 学习之二 属性(html()与html(val))
Nov 25 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
May 17 Javascript
jquery 为a标签绑定click事件示例代码
Jun 23 Javascript
Java File类的常用方法总结
Mar 18 Javascript
PageSwitch插件实现100种不同图片切换效果
Jul 28 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
Oct 27 Javascript
JavaSctit 利用FileReader和滤镜上传图片预览功能
Sep 05 Javascript
浅谈在vue项目中如何定义全局变量和全局函数
Oct 24 Javascript
vue使用jsonp抓取qq音乐数据的方法
Jun 21 Javascript
javascript json字符串到json对象转义问题
Jan 22 Javascript
JS实现换肤功能的方法实例详解
Jan 30 Javascript
详细分析vue表单数据的绑定
Jul 20 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-FPM的配置与优化讲解
2019/03/15 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
使弱类型的语言JavaScript变强势
2009/06/22 Javascript
js函数调用常用方法详解
2012/12/03 Javascript
js中判断用户输入的值是否为空的简单实例
2013/12/23 Javascript
js传中文参数controller里获取参数乱码问题解决方法
2014/01/03 Javascript
纯js实现div内图片自适应大小(已测试,兼容火狐)
2014/06/16 Javascript
jQuery中:last-child选择器用法实例
2014/12/31 Javascript
使用JQuery FancyBox插件实现图片展示特效
2015/11/16 Javascript
Bootstrap Table的使用总结
2016/10/08 Javascript
JS获取多维数组中相同键的值实现方法示例
2017/01/06 Javascript
axios拦截设置和错误处理方法
2018/03/05 Javascript
详解小程序用户登录状态检查与更新实例
2019/05/15 Javascript
[02:51]DOTA2英雄基础教程 风暴之灵
2013/12/23 DOTA
[02:33]2014DOTA2 TI每日综述 LGD涉险晋级DK闯入胜者组
2014/07/14 DOTA
[00:02]DOTA2新版本使用PA至宝后暴击展示
2014/11/19 DOTA
python应用程序在windows下不出现cmd窗口的办法
2014/05/29 Python
PyQt5每天必学之拖放事件
2020/08/27 Python
Python 中的lambda函数介绍
2018/10/10 Python
python 输入一个数n,求n个数求乘或求和的实例
2018/11/13 Python
详解Python进阶之切片的误区与高级用法
2018/12/24 Python
numpy.where() 用法详解
2019/05/27 Python
运动鞋、足球鞋和慕尼黑球衣:Sport Münzinger
2019/08/26 全球购物
Monica Vinader官网:英国轻奢珠宝品牌
2020/02/05 全球购物
Linux Interview Questions For software testers
2013/05/17 面试题
大学毕业生工作的自我评价
2013/10/01 职场文书
计算机系毕业生推荐信
2013/11/06 职场文书
《他得的红圈圈最多》教学反思
2014/04/24 职场文书
大学理论知识学习自我鉴定
2014/04/28 职场文书
警察先进个人事迹材料
2014/05/16 职场文书
委托书格式
2014/08/01 职场文书
银行招聘自荐信
2015/03/06 职场文书
2015年领导班子工作总结
2015/05/23 职场文书
法定授权委托证明书
2015/06/18 职场文书
PostgreSQL出现死锁该如何解决
2022/05/30 PostgreSQL
云服务器部署 Web 项目的实现步骤
2022/06/28 Servers