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. Truck History(prime)

    Truck History Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 31871   Accepted: 12427 D ...

  2. springboot热部署(一)——Java热部署与热加载原理

    一.概述 在应用运行的时升级软件,无需重新启动的方式有两种,热部署和热加载. 对于Java应用程序来说, 热部署就是在服务器运行时重新部署项目,——生产环境 热加载即在在运行时重新加载class,从而 ...

  3. 23-[jQuery]-效果:隐藏,淡出,盒子高度,动画

    1.隐藏,显示 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  4. 19-[JavaScript]-DOM

    1.DOM操作 在JS中,所有的事物都是节点,元素.文本等都是节点. 应用场景:可以通过节点进行DOM对象的增删改查 (1)获取DOM节点的方法 //通过id获取,唯一的 var oDiv = doc ...

  5. vivado与modelsim的联合仿真

    转载: 一.在vivado中设置modelsim(即第三方仿真工具)的安装路径.在vivado菜单中选择“Tools”——>“Options...”,选择“General”选项卡,将滚动条拉倒最 ...

  6. jquery ajax 上传文件和传递参数到一个接口的实现方法

    参考:https://blog.csdn.net/qq_15674631/article/details/81095284 参考:https://www.jianshu.com/p/46e6e03a0 ...

  7. 菜鸟vimer成长记——第2.1章、normal模式

    目的 掌握normal模式下常用操作的语法和概念,这些操作对应的应用场景以及实用技巧. 通过normal模式举一反三掌握cmd-line和visual的常用文本操作. 简介 文本操作的理想状态为:一个 ...

  8. UWP Xaml设计器中输入特殊字符

    <TextBox Text="欢迎使用小冰科技最新研发的自然语言处理程序.小冰科技旗下还有强大的人脸识别软件——<微识别>,自动追踪和识别人脸:具有科普性质的.清新脱俗的识 ...

  9. allure2 report+ jenkins 使用

    物色了一个挺漂亮的报告生成插件 ——allure. 下面介绍一下这个报告的使用. 1. 添加依赖 <dependencies> <!-- https://mvnrepository. ...

  10. 分布式消息队列RocketMQ与Kafka架构上的巨大差异

    分布式消息服务 Kafka 是一个高吞吐.高可用的消息中间件服务,适用于构建实时数据管道.流式数据处理.第三方解耦.流量削峰去谷等场景,具有大规模.高可靠.高并发访问.可扩展且完全托管的特点,是分布式 ...