注释:
     React JSX需要的注释格式是:
     {/*....*/}
     WebStorm默认的是:
     /*.....*/
 
作为子节点
{/*...*/}
作为内联属性
/*.....*/  ----------多行注释
// -----------单行注释
 
写内联样式:
var tdStyle = {
     border:0
}
<td style={tdStyle}></td>
 
refs
ref的值有两种类型,一种是字符串、一种是回调函数
 
contentEditable属性为true,允许用户在其内部输入富文本
 
访问受控的DOM节点
1.componentDidMount时期
2.事件处理器时期
 
模拟卸载而后重新挂载
componentDidUpdate:function(){
     this.componentWillUnmount();
     this.componentDidMount();
}
 
forceUpdate:就是重新更新render。有些变量不在state上,但是你又想达到这个变两个更新的时候,刷新render;或者state里的某个变量层次太深,更新的时候没有自动触发render,这时候都可以手动调用forceUpdate自动触发render
 
 
shouldComponentUpdate()方法是判断是否有必要更新render(),渲染页面,返回的结果是bool值,如果是false,则不用重新更新render,否则更新,默认值是true,该方法接受两个参数,即新的props和新的state
 
redux就是用来确保state变化的可预见性
主要的约束有:
1.state以单一对象存储在store对象中
2.state只读
3.使用纯函数reducer执行state更新
管理应用的 state
  • 通过 store.getState() 可以获取 state

  • 通过 store.dispatch(action) 来触发 state 更新

  • 通过 store.subscribe(listener) 来注册 state 变化监听器

  • 通过 createStore(reducer, [initialState]) 创建
 
React支持的元素
1.html元素
2.SVG元素
支持的属性
支持所有的data-*和aria-*属性
注意:所有的属性都是驼峰命名的,class属性和for属性分别改为className和htmlFor,来符合DOM API 规范
 
React特有的属性
key:可选的唯一的标识器。当组件在渲染过程中被各种打乱的时候,由于差异检测逻辑,可能会被销毁后重新创建,给组件绑定一个key,可以持续确保组件还在DOM中。
ref:获取真实dom时使用,this.refs.[refname].getDOMNode()。
dangerouslySetInnerHTML:提供插入纯HTML字符串的功能,主要为了能和生成的DOM字符串的库整合
 
 
批处理虚拟DOM的刷新
 
 
react中DOM节点如何绑定属性:使用data-属性名
 
 
 
React提倡所有的数据都是由父组件来管理,通过props的形式传递给子组件来处理
React组件之间交流的方式有3种:
1.父组件向子组件传值     主要利用props来进行交流   
 注意 :
           如果组件嵌套层次太深,那么从外到内组件的交流成本就变得很高,建议尽可能的减少组件的层次
2.子组件向父组件传值    主要利用子组件空置 自己的state然后告诉父组件的点击状态,然后在父组件中展示开来
3.没有任何嵌套关系的组件之间传值(ps:比如:兄弟之间的传值)
注意:
         如果组件有多层嵌套的情况下,你必须要一次传入回调函数给props来实现子组件向父组件传值 

react.js的更多相关文章

  1. MVC、MVP、MVVM、Angular.js、Knockout.js、Backbone.js、React.js、Ember.js、Avalon.js、Vue.js 概念摘录

    注:文章内容都是摘录性文字,自己阅读的一些笔记,方便日后查看. MVC MVC(Model-View-Controller),M 是指业务模型,V 是指用户界面,C 则是控制器,使用 MVC 的目的是 ...

  2. 再谈React.js实现原生js拖拽效果

    前几天写的那个拖拽,自己留下的疑问...这次在热心博友的提示下又修正了一些小小的bug,也加了拖拽的边缘检测部分...就再聊聊拖拽吧 一.不要直接操作dom元素 react中使用了虚拟dom的概念,目 ...

  3. React.js实现原生js拖拽效果及思考

    一.起因&思路 不知不觉,已经好几天没写博客了...近来除了研究React,还做了公司官网... 一直想写一个原生js拖拽效果,又加上近来学react学得比较嗨.所以就用react来实现这个拖 ...

  4. React.js深入学习详细解析

    今天,继续深入学习react.js. 目录: 一.JSX介绍 二.React组件生命周期详解 三.属性.状态的含义和用法 四.React中事件的用法 五.组件的协同使用 六.React中的双向绑定   ...

  5. React.js入门必须知道的那些事

    首先,React.js是facebook在2013年5月开源的一个前端框架,React不是一个MVC框架,它是构建易于可重复调用的web组件,侧重于UI, 也就是view层, React为了更高超的性 ...

  6. React.js 官网入门教程 分离文件 操作无法正常显示HelloWord

    对着React官网的教程练习操作,在做到分离文件练习时,按照官网步骤来却怎么也无法正常显示HelloWord. 经测试,html文件中内容改为: <!DOCTYPE html><ht ...

  7. React.js入门笔记(再续):评论框的实现

    本案例来自React.js中文官网对应内容. 一. 运行环境 <link rel="stylesheet" type="text/css" href=&q ...

  8. Facebook的Web开发三板斧:React.js、Relay和GraphQL

    2015-02-26 孙镜涛  InfoQ Eric Florenzano最近在自己的博客上发表了一篇题为<Facebook教我们如何构建网站>的文章,他认为软件开发有些时候需要比较大的跨 ...

  9. 移动web端的react.js组件化方案

     背景: 随着互联网世界的兴起,web前端开发的方式越来越多,出现了很多种场景开发的前端架构体系,也对前端的要求日益增高,早已经不是靠一个JQuery.js来做前端页面的时代了,而今移动端变化最大,近 ...

  10. 收集的React.JS资料

    主页 http://facebook.github.io/react/ https://github.com/facebook/react   中文站 http://www.reactjs.cn/ h ...

随机推荐

  1. Ubuntu 16.04应用布署小记

    本系列文章记录了升级Ubuntu 16.04的布署过程 回到目录 10. Dokuwiki 将虚拟目录配置文件链接到Apache2的可用的配置文件库中 sudo ln -s /opt/dokuwiki ...

  2. Excel取消超级链接

    背景 本人使用Excel作笔记,偶尔会将一些url存到文档中.Excel会自动给这些url加上超链接,下次使用的时候,因为会单机跳转,导致选中复制很不方便. 解决方式 修改配置,避免给自动url加上超 ...

  3. 【前端】js代码模拟用户键盘鼠标输入

    js代码模拟用户键盘鼠标输入 原生js var event = new Event('mousewheel'); event.wheelDelta = 360 document.dispatchEve ...

  4. 微信小程序-页面链接

    navigator 页面链接. 注:navigator-hover默认为{background-color: rgba(0, 0, 0, 0.1); opacity: 0.7;}, <navig ...

  5. Entity Framework 数据库初始化四种策略

    策略一:数据库不存在时重新创建数据库 Database.SetInitializer<testContext>(new CreateDatabaseIfNotExists<testC ...

  6. c++实现简单的链表

    注:我是一个编程菜鸟,哪个大神看出来缺陷提点一下,感激不尽. 链表由一个个的节点串联而成,同一由first头指针管理,属于线性表中相比于数组,添加删除方便,但访问又有点慢的数据结构. 第一步:节点 N ...

  7. Redis3.20阅读-SDS实现

    声明:这是本人参考黄建宏的<redis设计与实现>(源码版本是redis3.0)来学习redis3.20源码的笔记,如果有什么不对的地方,欢迎大家指正,大家一起学习.一起进步,QQ:499 ...

  8. TFS二次开发、C#知识点、SQL知识总结目录

    TFS二次开发系列 TFS二次开发系列:一.TFS体系结构和概念 TFS二次开发系列:二.TFS的安装 TFS二次开发系列:三.TFS二次开发的第一个实例 TFS二次开发系列:四.TFS二次开发Wor ...

  9. (转载)MongoDB C#驱动中Query几个方法

    MongoDB C#驱动中Query几个方法 Query.All("name", "a", "b");//通过多个元素来匹配数组 Query ...

  10. Jenkins 在windows下的安装与配置

    1. 安装Jenkins war包安装:启动Jenkins命令,打开cmd至Jenkins安装目录下,运行命令 java -jar jenkins.war 如果改变默认端口,则指定端口例如端口号108 ...