React:是2013年Facebook在github上的一个开源js库,它将用户界面抽象为一个个组件,再由开发者将其组合成页面。它不是完整的MVC/MVVM框架,专注于提供清晰、简洁的view层解决方案,尽可能让用户使用原生js开发。其特点是通过生成Virtual Dom(js对象树)提升了应用性能,每当数据更新,则计算对比上次Virtual Don,对发生变化的部分做出批量更新,从而减少了实际的DOM操作。

JSX:React固有的一种语法,允许js与html混用。

需注意:1)所有标签必须闭合

2)类似XML,有且只有一个根标签

3)小写首字母对应DOM元素,大写首字母对应组件元素

4)注释需加上{}

组件:一组可以被公用的功能代码,具有统一的样式布局,可以通过传参展示不同的数据,例如Button组件

React组件基本由以下三个部分组成:属性,状态,生命周期

React组件构成方法:

createClass、ES6 classes、无状态函数

createClass

cont Button =  React.createClass({

getDefaultProps(){

return{

color:'red',

text:'Confirm'

}

},

render() {

const {color, text} = this.props;

return (

<button className={'btn-${color}'}>

<em>{text}</em>

</button>

);

}

)

上述创建方式,当调用Button组件时,会被解析为React.createElement(Button)方法来创建实例

ES6 classes

class Button extends React.Component {

construtor(props){

super(props);

}

static defaultProps ={color:'red',text:'confirm'}

render() {

return(

<button className={'btn btn-${color}'}>

<em>{text}</em>

</button>

)

}

}

无状态函数(只传入props和context两个参数,无state也无生命周期)

function Button ({color='blue',text='confirm'}){

return (

<button className={'btn btn-${color}'}><em>{text}</em></button>

)

}

初入React(一)的更多相关文章

  1. react整理一二(初入React世界)

    react重要思想:组件化(按钮组件.对话框组件.日期组件等等).JSX语法 react把代码和正式渲染目标隔离开来,除了可以在浏览器渲染到DOM来开发网页,还能用于开发原生移动运用 1.专注视图层: ...

  2. 深入React技术栈之初入React世界

    1.1 react简介 react并不是完整的MVM/MVVM框架,专注于提供清晰.简洁的View层解决方案. 传统开发模式,要更新页面需要手动操作DOM元素.如图1.1所示,React在DOM上封装 ...

  3. 初入React源码(一)

    导语 React是我接触的第二个框架,我最初开始接触的是vue,但是并没有深入的理解过vue,然后在工作过程中,我开始使用了React,现在已经觉得React会比vue更加实用,但是这只是个人观点,可 ...

  4. Scala初入

    何为Scala物 Scala为基于JVM虚拟机中的面向对象与函数式编程思想并且完全兼容Java的混合编程语言,可以是Scala与Java是同根同源的,既然Scala与JAVA都是基于JVM之上的编程语 ...

  5. 初学HTML5、初入前端

    学习HTML5是一个漫长的过程,当中会遇到很多技术与心态上的变化.刚开始学习,我们不能发力过猛,需要一个相对稳定的状态去面对.多关注一些自己感兴趣的网站和技术知识,建立自己的信心与好奇心,为以后的学习 ...

  6. 0x00linux32位汇编初入--前期准备

    0x00汇编初入--前期准备 一.汇编工具 在linux平台下常用的编译器为as,连接器为ld,使用的文本编辑器为vim,汇编语法为att 以下是一些工具: addr2line 把地址转换为文件名和行 ...

  7. 初入职场的建议--摘自GameRes

    又开始一年一度的校招了,最近跑了几个学校演讲,发现很多话用短短的一堂职业规划课讲还远远不够,因为那堂课仅仅可能帮大家多思考怎样找到一份合适的工作,并没有提醒大家怎样在工作中发展自己的职业. 见过这么多 ...

  8. 【Xbox one S】开箱&开机&初入坑心得

    再来一发水贴,先上产品标准照镇贴: 前言 身为一个资深单机游戏玩家,常年混迹在PC平台,但内心深处一直对主机有种迷之向往,感觉那才是单机游戏的正处之地,坐沙发上拿着手柄对着电视跌宕起伏才是正确的游戏姿 ...

  9. Git初入

    Git记录 使用git 也有一段时间了, git的入门级了解也就不再多说, 但平常使用中, 仍然会遇到很多问题, 在此记录一二. 在查资料的过程中, 发现了两个比较好的资料: 特别是第二个, 相当详细 ...

随机推荐

  1. react-native使用redux 存在的坑

    前几天安卓真机测试的时候,突然发现一个严重的问题. 后退两次退出应用,再开启白屏.而杀掉进程后再开启就是好的. 这个重大bug我跟了好久,以为是splash-screen的问题. 后来一点一点打con ...

  2. iOS Swift WisdomKeyboardKing 键盘智能管家SDK

    iOS Swift WisdomKeyboardKing 键盘智能管家SDK [1]前言:    今天给大家推荐个好用的开源框架:WisdomKeyboardKing,方面iOS日常开发,优点和功能请 ...

  3. http://browniefed.com/blog/2015/09/10/the-shapes-of-react-native/

    http://browniefed.com/blog/2015/09/10/the-shapes-of-react-native/

  4. java rmi 入门实例

    java rmi 入门实例 (2009-06-16 16:07:55) 转载▼ 标签: java rmi 杂谈 分类: java-基础    java rmi即java远程接口调用,实现了2台虚拟机之 ...

  5. 【转】枚举enum学习小记

    原帖: http://hi.baidu.com/yuleishou/item/caacae872190031ec216272f 表示在vs2008下实验了一下,有些东西和原帖的还是不一样的,都贴在这里 ...

  6. getopt例子

    (本例基于win7 + python3.4) import getopt, sys ''' getopt 模块专门用来处理命令行参数 函数 getopt(args, shortopts, longop ...

  7. uefi+gpt安装双系统

    uefi+gpt:不要用easybcd!不起作用.找不到.mbr文件. win10空出一个盘: 制作ubuntu启动盘: 分区设置 挂载点 分区大小 新分区类型 新分区位置 用于 / 22000MB ...

  8. 27-ATM+购物车程序

    1.需求 本章作业: 模拟实现一个ATM + 购物商城程序 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 支持多账户登录 支持账户间转账 记录每 ...

  9. 【HEOI2016】序列

    题面 题解 很像最长不下降子序列对吧(废话) 设$up[i]$和$down[i]$分别表示$i$最大最小能取多少 注意到: $$ f[i] = max_j\left\{f[j]\right\} + 1 ...

  10. .net core中使用缓存(cache)

    官方文档:https://docs.microsoft.com/en-us/aspnet/core/performance/caching/memory?view=aspnetcore-2.2#use ...