初入React(一)
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(一)的更多相关文章
- react整理一二(初入React世界)
react重要思想:组件化(按钮组件.对话框组件.日期组件等等).JSX语法 react把代码和正式渲染目标隔离开来,除了可以在浏览器渲染到DOM来开发网页,还能用于开发原生移动运用 1.专注视图层: ...
- 深入React技术栈之初入React世界
1.1 react简介 react并不是完整的MVM/MVVM框架,专注于提供清晰.简洁的View层解决方案. 传统开发模式,要更新页面需要手动操作DOM元素.如图1.1所示,React在DOM上封装 ...
- 初入React源码(一)
导语 React是我接触的第二个框架,我最初开始接触的是vue,但是并没有深入的理解过vue,然后在工作过程中,我开始使用了React,现在已经觉得React会比vue更加实用,但是这只是个人观点,可 ...
- Scala初入
何为Scala物 Scala为基于JVM虚拟机中的面向对象与函数式编程思想并且完全兼容Java的混合编程语言,可以是Scala与Java是同根同源的,既然Scala与JAVA都是基于JVM之上的编程语 ...
- 初学HTML5、初入前端
学习HTML5是一个漫长的过程,当中会遇到很多技术与心态上的变化.刚开始学习,我们不能发力过猛,需要一个相对稳定的状态去面对.多关注一些自己感兴趣的网站和技术知识,建立自己的信心与好奇心,为以后的学习 ...
- 0x00linux32位汇编初入--前期准备
0x00汇编初入--前期准备 一.汇编工具 在linux平台下常用的编译器为as,连接器为ld,使用的文本编辑器为vim,汇编语法为att 以下是一些工具: addr2line 把地址转换为文件名和行 ...
- 初入职场的建议--摘自GameRes
又开始一年一度的校招了,最近跑了几个学校演讲,发现很多话用短短的一堂职业规划课讲还远远不够,因为那堂课仅仅可能帮大家多思考怎样找到一份合适的工作,并没有提醒大家怎样在工作中发展自己的职业. 见过这么多 ...
- 【Xbox one S】开箱&开机&初入坑心得
再来一发水贴,先上产品标准照镇贴: 前言 身为一个资深单机游戏玩家,常年混迹在PC平台,但内心深处一直对主机有种迷之向往,感觉那才是单机游戏的正处之地,坐沙发上拿着手柄对着电视跌宕起伏才是正确的游戏姿 ...
- Git初入
Git记录 使用git 也有一段时间了, git的入门级了解也就不再多说, 但平常使用中, 仍然会遇到很多问题, 在此记录一二. 在查资料的过程中, 发现了两个比较好的资料: 特别是第二个, 相当详细 ...
随机推荐
- 数据结构与算法之Stack(栈)——重新实现
之前发过一篇stack的实现,是采用dart内置的List类并固定长度数组实现的.这里重新实现一版,重复利用List类内置特性和方法.实现更为简洁. class Stack<E> { fi ...
- PostgreSQL数据库表名的大小写实验
磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL基础知识与基本操作索引页 回到顶级页面:PostgreSQL索引页[作者 高健@博客园 luckyjackgao@g ...
- CF535E Tavas and Pashmaks
今天Fakehu考的T1. 大致意思就是有n个人每个人有两个速度\(v_1,v_2\),比赛有两个路程\(A,B\),最后时间是\(A/v_1+B/v_2\).求每个人是否可能成为冠军中的一个. 显然 ...
- jsp手动分页
注意: sql语句要写对,jsp显示 List 时的 item的字段名要写对 这里 where uid 要放在前面才能成功执行,否则会报错 , 在写items的时候,如果controller里面已经写 ...
- Object C学习笔记1-基本数据类型说明
Objective-C数据类型可以分为:基本数据类型.对象类型和id类型.基本数据类型有:int.float.double和char类型.对象类型就是类或协议所声明的指针类型,例如:NSAutorel ...
- java单元测试的用法及原因
1.ctrl+n 生成 Junit Test Case 2.选择文件夹 3.superClass 继承BaseUnitTest 4.next后 打勾选择需要单元测试的方法. 5.在生成的test ...
- 不把DB放进容器的理由
原文地址:http://www.tuicool.com/articles/6VbqeqQ 原文为英文,以下是笔者的个人总结. 此处的DB包括但不限于Redis.ElasticSearch. 1.数据安 ...
- python 中的特殊方法,纠正自己笨笨的记忆
1. __new__ 和 __init__ 的区别 python 2.x 老式类(默认继承type) class A: pass 老式类中没有__new__类方法(也就是说定义也不会执行,它不是老式类 ...
- python的类和对象2(self参数)
python的类和对象2(self参数) 1.python里面对象的方法都会有self参数,它就相当于C++里面的this指针:绑定方法,据说有了这个参数,Python 再也不会傻傻分不清是哪个对象在 ...
- hashCode及HashMap中的hash()函数
一.hashcode是什么 要理解hashcode首先要理解hash表这个概念 1. 哈希表 hash表也称散列表(Hash table),是根据关键码值(Key value)而直接进行访问的数据结构 ...