注释:
     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. 使用自定义签名的https的ssl安全问题解决和metro的webservice调用

    最近一直在忙新的项目,每天加班到8点多,都没来写博客了.新的项目遇到了很多问题,现在趁着突然停电来记录下调用https的问题吧. 我们服务主要是,我们调用数据源数据,并且再提供接口供外部数据调用. 我 ...

  2. Dynamics AX 2012 R2 AIF 内部异常

        今天,Reinhard发现某个入站端口,突然一直报错: The server was unable to process the request due to an internal erro ...

  3. JS_MediaPlayer类

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/T ...

  4. System.Configuration引用后ConfigurationManager方法用不了

    System.Configuration引用后ConfigurationManager方法却用不了,提示没有引用 需手动添加引用 项目-引用-右击-添加引用-找到System.Configuratio ...

  5. python字符串方法的简单使用

    学习python字符串方法的使用,对书中列举的每种方法都做一个试用,将结果记录,方便以后查询. (1) s.capitalize() ;功能:返回字符串的的副本,并将首字母大写.使用如下: >& ...

  6. springmvc json字符串转化成json对象

    问题出现在 :页面数据列表的展示出现 [object HTMLInputElement] 找到问题的所在原因后又三种解决方案 一:格式化json字符串为json对象字符串 success:functi ...

  7. Glide 图片加载库

    compile 'com.github.bumptech.glide:glide:3.7.0' Glide.with(context) //图片url .load("http://www.b ...

  8. linux 脚本小试系列

    实现100以内的奇数和和偶数和的脚本 1 #!/bin/bash 2 # #声明一个偶数变量和一个奇数变量 3 declare -i evensum=0 4 declare -i oddsum=0 # ...

  9. maven创建子项目(适用于多模块管理项目)

    在eclipse或者myeclipse下构建maven项目,该项目由多个子模块组成. 1.创建一个父项目 NEW -->project-->maven-->maven Project ...

  10. 查找二维数组list[][]中的最大的子数组的和

    之前做过最大一维数组子数组的和的题目,现在将数组扩展成二维: 代码如下: #include<iostream> #define null -858993460 using namespac ...