妹子UI里面有React的相关组件与用法:http://amazeui.org/react/components

React官方网站:https://facebook.github.io/react/docs/getting-started.html

React中文网站:http://www.css88.com/react/docs/getting-started.html

1、react两种注释:
这个是在react里面的。
{/* 要注释的内容 */}
在代码行里面用
/* */

2、html中的class在react中用className,html中的for在react中用htmlFor,行内样式书写规范style={{color:'red'}}

3、添加自定义属性之前添加data-前缀:<div data-custom-attribute="foo" />

4、react中的表达式的用法:

  在className中直接可以判断什么状态用什么样式:className={2 > 1 ? 'class-a' : 'class-b'}

  在模块中直接根据条件来判断具体用哪一个组件:{window.isLoggedIn ? <Nav /> : <Login />}

5、html转义:后台传过来的数据带页面标签的是不能直接转义的,具体转义的写法如下:

  1. var content='<strong>content</strong>';
  2.  
  3. React.render(
  4. <div dangerouslySetInnerHTML={{__html: content}}></div>,
  5. document.body
  6. );

6、传播属性和延伸属性:

如果提前知道属性的话直接写就好了,用传播属性即可:var component = <Component foo={x} bar={y} />;

如果属性是后来动态添加的话上面的那种形式就不太适合了,需要用延伸属性:

  1. var props = {};
  2. props.foo = x;
  3. props.bar = y;
  4. var component = <Component {...props} />;
  5. //或者
  6. var props = { foo: x, bar: y };
  7. var component = <Component { ...props } />;

7、在React中大多以JSX方式书写。JSX是一个语法糖,最终都会被解析为纯JavaScript代码。React虽然也可以直接使用javascript书写,但是官网推荐支持的是JSX方式。要把带有JSX语法的代码转化为纯Javascript代码,在script标签中要加上type="text/jsx",并引入JSXTransformer.js文件即可。这种方式不适用于生产环境,生产环境需要提前编译转换好。用npm全局安装react-tools即可:npm install -g react-tools

8、组件开发:开发组件的时候可以将相关的组件关联在一起。如父组件里面有多个子组件的情况,可以如下方式操作:  

  1. var Form = MyFormComponent;
  2.  
  3. var App = (
  4. <Form>
  5. <Form.Row>
  6. <Form.Label />
  7. <Form.Input />
  8. </Form.Row>
  9. </Form>
  10. );
  11.  
  12. //这样你只需将子组件的ReactClass作为其父组件的属性:
  13. var MyFormComponent = React.createClass({ ... });
  14.  
  15. MyFormComponent.Row = React.createClass({ ... });
  16. MyFormComponent.Label = React.createClass({ ... });
  17. MyFormComponent.Input = React.createClass({ ... });

  

react基本知识点合集的更多相关文章

  1. REACT相关资料合集

    ===实例=== https://github.com/jesseskinner/react-webpack-demo ===UI组件库=== https://github.com/amazeui/a ...

  2. javascript 易错知识点合集

    为什么 typeof null === 'object' 原理是这样的,不同的对象在底层都表示为二进制,在JavaScript中二进制前三位都为0的话会被判断为 object 类型, null 的二进 ...

  3. 【python系统学习08】for循环知识点合集

    for循环 for简介 [循环]:就是依照某些我们编写的特定规则,重复的做一件事. 当你需要重复的"搬砖"的时候,可以用for循环进行遍历,让机器循环的帮你去"搬砖&qu ...

  4. 【视频合集】极客时间 react实战进阶45讲 【更新中】

    https://up2.v.sharedaka.com/video/ochvq0AVfpa71A24bmugS5EewhFM1553702519936.mp4 01 React出现的历史背景及特性介绍 ...

  5. es6常用基础合集

    es6常用基础合集 在实际开发中,ES6已经非常普及了.掌握ES6的知识变成了一种必须.尽管我们在使用时仍然需要经过babel编译. ES6彻底改变了前端的编码风格,可以说对于前端的影响非常巨大.值得 ...

  6. 掘金 Android 文章精选合集

    掘金 Android 文章精选合集 掘金官方 关注 2017.07.10 16:42* 字数 175276 阅读 50053评论 13喜欢 669 用两张图告诉你,为什么你的 App 会卡顿? - A ...

  7. react-native 入门资源合集

    # 了解react-native React Native enables you to build world-class application experiences on native pla ...

  8. HCNP学习笔记之史上最全华为路由器交换机配置命令大合集

    先来一张思科和华为命令的对照表: 史上最全华为路由器交换机配置命令大合集,熟练掌握下面的华为路由器交换机配置知识点,你只需花几分钟的时间就能明白华为路由器交换机配置.交换机的配置命令等等. 华为路由器 ...

  9. SAP成都研究院2018年总共87篇技术文章合集

    2018年很快就要结束了.Jerry在2017年年底准备开始写这个公众号时,给自己定的目标是:2018年至少保证每周发布一篇高质量的文章.如今2018年就快过去了,高质量与否需要大家来反馈,至少从量上 ...

随机推荐

  1. 在Nutz中如何配置多个数据库源,并且带事务控制

    在Nutz中如何配置多个数据库源,并且带事务控制  发布于 560天前  作者 Longitude 995 次浏览  复制  上一个帖子  下一个帖子  标签: 无 在Nutz中如何配置多个数据库源, ...

  2. COGS2287 [HZOI 2015]疯狂的机器人

    [题目描述] 现在在二维平面内原点上有一只机器人 他每次操作可以选择向右走,向左走,向下走,向上走和不走(每次如果走只能走一格) 但是由于本蒟蒻施展的大魔法,机器人不能走到横坐标是负数或者纵坐标是负数 ...

  3. 使用taobao cnpm 源解决npm无法安装module问题

    npm 安装nativescript时出现异常,一直停着不动.应该是源被墙了的问题可以使用淘宝仓库,执行下面的命令: alias cnpm="npm --registry=https://r ...

  4. 20145238-荆玉茗 《Java程序设计》第7周学习总结

    20145238 <Java程序设计>第7周学习总结 教材学习内容总结 第13章时间与日期 13.1.1 ·即使标注为GMT(格林威治时间),实际上谈到的的是UTC(Unix时间)时间. ...

  5. Redis 命令学习

    每天不学习点新的东西,感觉就有点会被社会淘汰掉了.也许现在学习的知识会很快忘记,下次学习用到这个知识点的时候,再回来翻记录的笔记,我想这样会比从头再学,效率会高点吧. 闲话不多聊,回归正题.今天学习r ...

  6. JavaScript中基本知识

    变量 每个变量仅仅是一个用于保存值的占位符而已. 用var操作符定义的变量将成为定义该变量的作用域中的局部变量. 省略var操作符可以定义一个全局变量.但是不推荐这种做法,因为在局部作用域中定义的全局 ...

  7. 2.Netty的粘包、拆包(一)

    Netty粘包.拆包 1.什么是拆包.粘包 (1)拆包.粘包介绍 TCP是个"流"协议,所谓流,就是没有界限的一串数据.大家可以想想河里的流水,是连成一片的,其间并没有分界线.TC ...

  8. xcode怎样分析检测内存泄露(iOS)

    虽然iOS 5.0版本之后加入了ARC机制,由于相互引用关系比较复杂时,内存泄露还是可能存在.所以了解原理很重要. 这里讲述在没有ARC的情况下,如何使用Instruments来查找程序中的内存泄露, ...

  9. $.ajax()与$.post()区别

    当使用$.ajax时: var name = $('#txtUserName').val(); var pwd = $('#txtPassWord').val(); var param = " ...

  10. vscode + leetcode +github 同步

    1.用VScode打开本地leetcode文件夹 C:\Users\Administrator\.leetcode 2.上传到本地git库 3.打开github桌面,上传到远程库