React学习笔记-1-什么是react,react环境搭建以及第一个react实例

  1. 什么是react?
    react的官方网站:https://facebook.github.io/react/
    下图这个就是就是react的标志,非常巧合的是他和我们的github的编辑器Atom非常相似。react是Facebook官方推出的一个javascript的库,现在已经有了非常多的库和框架Facebook为什么还要开发一款新的框架呢?原因就是 Facebook遇到了一些新的问题。Facebook需要解决的问题是构建数据不断变化的大型应用。大型应用是什么意思?数据不断变化带来什么问题呢?
         数据变化可以导致两个非常严重的问题,第一个问题是大量的dom操作;第二个问题就是逻辑会变得非常的复杂。数据要通过页面来进行展示,数据不断变化,就会导致dom不断变化,从而需要进行大量的dom操作,尽管我们已经了jQuery等操作dom的利器,但我们仍然需要编写许多手动的dom操作代码。数据和逻辑密切相关,数据变化的时候,逻辑也会发生变化,相信大家都会有这样的经历,当你去修改一个已有项目的时候,改动一个地方的代码,往往会产生许多意料之外的后果,这就是因为数据和逻辑之间的关系非常复杂,牵一发而动全身,所以数据变化会导致这样两种后果。
       那react如何来解决这两个问题呢?对于dom操作,react的操作是采用自动dom操作,在react中,你不需要手动进行dom操作,只需要告诉react要展示什么内容,react会自动来操作dom。针对第二个问题,react的方案吧状态和内容显示的对应起来,这样我们就可以一目了然的知道,状态变化,内容会如何变化,从而理清程序的逻辑。

  2. react有两个特点:第一个是简单,第二个是声明式。简单有两层意思,第一层意思是react学习简单,上手容易,第二层意思是是react写出的代码非常简单,容易阅读。声明式就是我们前面说的自动dom操作,你只需要声明给react显示什么内容,至于如何把这些内容显示到页面上,是由react来帮你完成的。
  3. 在react中,核心是组件,组件的设计目的是提高代码的复用率,降低测试难度和代码复杂度。
           组件提高代码复用率:组件将数据和逻辑封装,类似面向对象中的类。我们可以将通用的逻辑和数据封装起来,从而能提高代码的复用率。
           降低测试难度:组件高内聚,低耦合,很同意对单个组件进行测试,通过模拟他的输入,或者输出,来测试组件的功能是否完善。
           降低代码复杂度:直观的语法可以极大地提高可读性,降低代码的复杂度和维护难度。
  4. react的发展过程
    2013年6月,Facebook官方发布react--------》2013年9月,react热度上涨,越来越多的人开始关注react-------》2015年3月,React Native发布(就是用react来编写跨平台的移动端应用),简单说就是我们可以用react来编写iOS,Android和Windows phone的应用,在目前的前端领域,代码模块化和用js来编写跨平台的移动端应用,是两个主要的探索方向,在用js来编写跨平台的移动端应用中,已经有了很多的方案,但是这些方案或多或少都有一些缺陷.
  5. react的现状
    react是发布在github上面的开源项目。
    国外使用的公司:Facebook,Flipboard,Airbnb,BBC,Github,Instagram,Reddit,Uber,WhatApp,yahoo
    国内使用React的公司:支付宝,淘宝,大搜车,Teambition,豆瓣,豌豆荚
  6. 这个教程使用的是0.13.2,我们是学习,就不下载了,直接使用cdn服务器:http://www.bootcdn.cn/
     我们需要两个文件
       react.js://cdn.bootcss.com/react/0.13.2/react.js
       JSXTransformer.js://cdn.bootcss.com/react/0.13.2/JSXTransformer.js
    使用的时候,记得在前面加上http://
    可能这么说有点迷瞪,接着看下面的就懂了。
  7. react的程序结构
    react程序本质上就是一个html页面,html页面中可以编写Js代码和css代码,当然我们也可以将js和css单独存放,最后在引入到html文件中。
    这里需要注意的是,react程序非常特别的一点,就是使用了jsx,我们后面会详细说明jsx的用法,这里只要知道jsx是写在js里面的就行,下面我们放代码
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>hello world</title>
    </head>
    <body>
        <script type="text/javascript" src="http://cdn.bootcss.com/react/0.13.2/react.js"></script>
        <script type="text/javascript" src="http://cdn.bootcss.com/react/0.13.2/JSXTransformer.js"></script>
        <script type="text/jsx">
           var HelloWorld=React.createClass({
               render:function(){
                  return <p>Hello,world</p>
               }
           });
           React.render(<HelloWorld></HelloWorld>,document.body);
        </script>
    </body>
    </html>

    注意我们的第三个script的type类型为text/jsx,注意HelloWorld的首字母大写,我们后面会说。

时间: 2024-08-25 00:31:45

React学习笔记-1-什么是react,react环境搭建以及第一个react实例的相关文章

Android学习笔记之(一)开发环境搭建

至于说Android是什么之类的俺就不啰嗦了,因为它离我们太近了.直接上手配置环境.对于程序开发员来说,面对一个新的东西,上手莫过于几个东西了:开发包(提供了哪些API).编程语言(用什么语言来编程)和开发环境(包括IDE和Tools),然后就是工程文件结构(源文件.编译生成的文件和资源文件等放在哪)和第一个HelloWorld程序了.呵呵,个人浅见,若有不妥,还望赐教.那这个开发环境的搭建就是这么些个步骤了. Android SDK 提供了开发Android软件必需的API库和开发工具.目前的

MyBatis学习笔记一:MyBatis最简单的环境搭建

MyBatis的最简单环境的搭建,使用xml配置,用来理解后面的复杂配置做基础 1.环境目录树(导入mybatis-3.4.1.jar包即可,这里是为后面的环境最准备使用了web项目,如果只是做 mybatis的环境,普通java项目即可 ) 2.Person.java(纯POJO对象类) package com.orange.model; public class Person { private String name; private String address; public Stri

MyBatis学习笔记二:MyBatis生产中使用环境搭建

这里是在上一个环境的基础上修改的,这里就不在给出所有的配置,只给出哪里修改的配置 1.修改POJO对象为注解方式 2.创建Dao层接口 package com.orange.dao; import com.orange.model.Person; public interface PersonDao { // 这里的返回值和方法名必须和PersonMapper.xml中定义的执行语句的id一致 public Person selectPerson(); } 3.修改PersonMapper.xm

.NET学习笔记(2)—IIS服务器环境搭建

目录 一:开启Windows系统自带的IIS服务器方法 二:备注 三:常见问题     一:开启Windows系统自带的IIS服务器方法 第一步:安装IIS,控制面板->程序和功能->打开或关闭Windows功能->Internet信息服务勾选以下: 第二步:控制面板->管理工具->Internet 信息服务(IIS)管理器: 第三步:端口和默认文档设置,选中网站,点击右侧绑定按钮可以设置网站端口,点击默认文档,设置网站的默认文档,比如添加Index.aspx: 第四步:,添

【JAVAWEB学习笔记】网上商城实战:环境搭建和完成用户模块

网上商城实战 今日任务 完成用户模块的功能 1.1      网上商城的实战: 1.1.1    演示网上商城的功能: 1.1.2    制作目的: 灵活运用所学知识完成商城实战. 1.1.3    数据库分析和设计: 1.1.4    代码实现: 1.1.4.1  通用的Servlet的编写: 传统的方式: 传统的方式: * 一个请求对应一个Servlet. * 能不能一个模块对应一个Servlet. 一个模块对应一个Servlet: <a href=”/UserServlet?method=

linux学习笔记-第二十二课-LNMP环境搭建(一)

一.LNMP环境搭建前的准备 LNMP就是Linux系统下Nginx+MySQL+PHP这种网站服务器架构,所以需要下载mysql,php,与nginx这三套软件. MySQL : 32位 :http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-i686-icc-glibc23.tar.gz 64位 :http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-x86

React学习笔记 - 组件&amp;Props

React Learn Note 4 React学习笔记(四) 标签(空格分隔): React JavaScript 三.组件&Props 组件可以将UI切分成一些独立的.可复用的部件,这样你就只需专注于构建每一个单独的部件. 组件接收props,返回react元素. 1. 函数定义\类定义组件 最简单组件方式 - 函数定义组件: // 函数定义组件 function Welcome(props) { return <h1>Hello, {props.name}!</h1>

[Pro Angular.JS]学习笔记1.1:设置开发环境

可以使用yeoman.io,很方便.我已经写了一篇随笔,介绍如何使用.这里也有一篇介绍的文章:http://www.cnblogs.com/JoannaQ/p/3756281.html 代码编辑器,在Mac下用了一下WebStorm,太恶心了.另外发现书的作者使用的开发环境是Windows + VS Express 2013,为了方便学习,我也使用VS Express 2013 Update2.VS2013用起来蛮舒服的,把WebStorm比得跟驼屎一样.也许是因为我没用习惯吧. 1.安装Nod

APUE学习笔记:第七章 进程环境

7.1 引言 本章将学习:当执行程序时,其main函数是如何被调用的:命令行参数是如何传送给执行程序的:典型的存储器布局是什么样式:如何分配另外的存储空间:进程如何使用环境变量:各种不同的进程终止方式等:另外还将说明longjmp和setjmp函数以及它们与栈的交互作用:还将介绍研究进程的资源限制 7.2 main函数 C程序总是从main函数开始执行.当内核执行C程序时,在调用main前先调用一个特殊的启动例程.可执行程序文件将此启动例程指定为程序的起始地址——这是由连接编辑器设置的,而连接编