react.js

---恢复内容开始---

一.React的定义

React 是由Facebook 创建的一个开源项目。它提供了一种在JavaScript中构建用户界面的全新方式。react针对的是现代风格的JavaScript开发生态系统。React 是一个使用JavaScript 和XML技术(可选)构建可组合用户界面的引擎。下面对React定义的每个部分加以详细的说明:

React 是一个引擎:React的网站将它定义为一个库,但是我觉得使用“引擎”这个词更能体现出React的核心优势:用来实现响应式UI 渲染的方式。React的方式是将状态(在一个给定的时间点,所有用来定义应用程序的内部数据)从展现给用户的UI中分离出来。在React中,你可以声明如何 将应用程序的状态表现为DOM的虚拟元素,然后自动更新DOM以反映出状态的变化。

创建可组合用户界面:减少创建和维护用户界面的的复杂性一直是React的核心目标。React拥抱了这样一种理念:将UI“打散”成易于重用、扩展和维护的组件与自包含的关注特定用途的构件。

用JavaScript 和XML技术(可选):React是一个可用于浏览器、服务器和移动设备之上的纯JavaScript库。

二.React 的优点

1)简单易学的使响应式渲染

响应式渲染让我们使用一种声明方式,来定义组件的外观和行为。当数据发生变化时,React在概念上会重新渲染整个用户界面。React使用DOM在每次状态数据发生变化时就重新渲染整个用户界面。

2)使用纯JavaScript进行面向的组件开发

三. react的用法

1.HTML模版

首先,在官网https://facebook.github.io/react/中下载最新的压缩包,react—15.3.1,解压之后只需将build放到js下即可,然后再 react.js ,react-dom.js,browser.min.js引入到html页面,react.js是react的核心库,react_dom.js是提供与DOM相关的功能,browser.min.js是将JSX语法转换为JavaScript语法,如下所示

<html>
<head>
<script src="../build/react.js"></script>
<script src="../build/react-dom.js"></script>
<script src="../build/browser.min.js"></script>
</head>
<body>
<div id="example"></div>
<script type="text/babel">
ReactDOM.render(
<h1>Hello, world!</h1>,
document.getElementById(‘example‘)
);
</script>
</body>
</html>

2.ReactDom.render是react的最基本用法,用于将模版转换HTML语言,并将其插入指定的DOM节点。

ReactDOM.render(

<h1>Hello, world!</h1>,

document.getElementById(‘example‘) );

上面代码将一个 h1 标题,插入 example 节点。

四、组件

React 允许将代码封装成组件(component),然后像插入普通 HTML 标签一样,在网页中插入这个组件。React.createClass 方法就用于生成一个组件类(查看 demo04)。


var HelloMessage = React.createClass({
  render: function() {
    return <h1>Hello {this.props.name}</h1>;
  }
});

ReactDOM.render(
  <HelloMessage name="John" />,
  document.getElementById(‘example‘)
);

上面代码中,变量 HelloMessage 就是一个组件类。模板插入 <HelloMessage /> 时,会自动生成 HelloMessage 的一个实例(下文的"组件"都指组件类的实例)。所有组件类都必须有自己的 render 方法,用于输出组件。

注意,组件类的第一个字母必须大写,否则会报错,比如HelloMessage不能写成helloMessage。另外,组件类只能包含一个顶层标签,否则也会报错。

五、this.props.children

this.props 对象的属性与组件的属性一一对应,但是有一个例外,就是 this.props.children 属性。它表示组件的所有子节点(查看 demo05)。


var NotesList = React.createClass({
  render: function() {
    return (
      <ol>
      {
        React.Children.map(this.props.children, function (child) {
          return <li>{child}</li>;
        })
      }
      </ol>
    );
  }
});

ReactDOM.render(
  <NotesList>
    <span>hello</span>
    <span>world</span>
  </NotesList>,
  document.body
);

上面代码的 NoteList 组件有两个 span 子节点,它们都可以通过 this.props.children 读取。



render函数共有三个参数,

1、要渲染的组件,也就是DOM

2、需要被渲染的页面元素,注意必须使用document.getElement...进行调用

3、渲染成功的回调

时间: 2024-10-19 00:46:13

react.js的相关文章

react.JS基础

1.ReactDOM.render() React.render 是 React 的最基本方法,用于将模板转为 HTML 语言,并插入指定的 DOM 节点. 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 <title></title> 6 <script type="text/javascript" src

Angular、React.js 和Node.js到底选谁?

为了工作,程序员选择正确的框架和库来构建应用程序是至关重要的,这也就是为什么Angular和React之间有着太多的争议.Node.js的出现,让这场战争变得更加复杂,虽然有选择权通常是一件很棒的事情,但在这种情况下,对于到底应该选择哪种框架,程序员之间并没有一致的意见,每个人都有不同的想法,并且听起来都相当合理. 为了让一切归于和谐,本文就来探究一下这三大框架各自的优缺点. 基础知识部分: 在我们深入研究这三种框架的具体细节之前,先来了解一些前情提要.yigouyul22.com xucaiz

使用 React.js 的渐进式 Web 应用程序:第 1 部分 - 介绍

来自译者 markzhai:大家也知道最近 Web 越来越火了,如果你还以为 Web 就是 jQuery.Ajax.CSS 什么的,那你就 out 了.给大家几个链接看一看吧: https://shop.polymer-project.org/ https://housing.com/ https://www.flipkart.com/ https://react-hn.appspot.com/ https://mobile.twitter.com/ 部分可能需要自备梯子,另外建议在 Chrom

Sublime Text 3 搭建 React.js 开发环境

ublime有很强的自定义功能,插件库很庞大,针对新语言插件更新很快,配合使用可以快速搭建适配语言的开发环境. 1. babel 支持ES6, React.js, jsx代码高亮,对 JavaScript, jQuery 也有很好的扩展.关于 babel 的更多介绍可以看这里:为什么说Babel将推动JavaScript的发展 安装 PC:Ctrl+shift+p Mac:Cmd+shift+p 打开面板输入babel安装 配置 打开.js, .jsx 后缀的文件; 打开菜单view, Synt

React.js 基础入门三 ---组件状态state

React 组件实例在渲染的时候创建.这些实例在接下来的渲染中被重复使用,可以在组件方法中通过 this 访问.唯一一种在 React 之外获取 React 组件实例句柄的方式就是保存React.render 的返回值.在其它组件内,可以使用 refs 得到相同的结果(后面会简单解释refs). 从上几章的学习,我们可以这么理解组件,学过php的Yii框架的都知道widget组件,react.js定义一个组件,通过在组件中定义各种'方法','属性'最后通过render来渲染这个组件. 其中<组建

React.js 基础入门四--要点总结

JSX语法,像是在Javascript代码里直接写XML的语法,实质上这只是一个语法糖,每一个XML标签都会被JSX转换工具转换成纯Javascript代码,React 官方推荐使用JSX, 当然你想直接使用纯Javascript代码写也是可以的,只是使用JSX,组件的结构和组件之间的关系看上去更加清晰. 1. HTML 标签 和 React 组件 在JS中写HTML标签,也许小伙伴们都惊呆了,那么React又是怎么区分HTML标签,React组件标签? HTML标签: var myDivEle

要不要使用React JS呢 - Angular与ReactJS的整合

MVC(Model - View - Controller)模式无论是Web开发中的前端还是后端都是比较流行的模式,ReactJS位于前端MVC模式中的View层,最多有点Controller层的特性,相当于Javascript编写的Html模板.而Data Model和Data Binding是Angular的优势,所以需要Angular与ReactJS整合.不过Flux是适应ReactJS的数据绑定需求出现的一个库,支持单向数据绑定,https://facebook.github.io/fl

React.js终探(七)(完)

我们在前面介绍了组件的各种特性,这一节我们来说说多组件的情况. 在实际开发中,我们的组件难免会遇到有公共部分的情况,如果是个别情况还好,但如果数量比较多的话,那这时候,就需要公用了. 怎么公用呢? React为我们提供了它的方法. mixin:复用代码 可以把部分代码提出来公用.mixin是掺合混合的意思,即可以把一个对象的属性拷贝到另一个对象上. 使用mixin有两步: 定义一个mixin对象,即如 1 var EzLoggerMixin = { 2 log:function(){ 3 //s

React.JS概念介绍

概念 React.js 是 Facebook 推出的一个用来构建用户界面的 JavaScript 库. React只有很少的API,这使得它很容易去学习与理解.当然,使用它也是相当有意思的.但是,简约却并不简单.在我们开始之前,有一些概念是需要去理解的. React元素(React elements) React元素是用于呈现HTML结构的JavaScript对象.它们不会存在于浏览器中,只是用于描述浏览器中的元素,比如h1, div 或者 section等等. 模块(Components) 模