2019独角兽企业重金招聘Python工程师标准>>>

React.js这是不错。利用Javascript的OO和函数编程的特性,可以把一堆子html的标签封装成一个组件。这个有点当年Borland公司Delphi的味道。

网站上给的例子:

[1]  first.html:

<!DOCTYPE html>
<html>
  <head>
    <script src="build/react.js"></script>
    <script src="build/JSXTransformer.js"></script>
    <script src="/jquery/dist/jquery.js"></script>
  </head>
  <body>
    <div id="content"></div>
    <script type="text/jsx" src="src/helloworld.js">    
    </script>
  </body>
</html>

var Comment = React.createClass({
  render: function() {
    return (
      <div className="comment">
        <h2 className="commentAuthor">
          {this.props.author}
        </h2>
        {this.props.children}
      </div>
    );
  }
});

[2] helloworld.js:

var CommentList = React.createClass({
    render: function() {
        var commentNodes = this.props.data.map(function (comment) {
            return (
                <Comment author={comment.author}>
                    {comment.text}
                </Comment>
            );
        });
    return (
      <div className="commentList">
        {commentNodes}
      </div>
    );
  }
});

var CommentForm = React.createClass({
  handleSubmit: function(e) {
    e.preventDefault();
    var author = React.findDOMNode(this.refs.author).value.trim();
    var text = React.findDOMNode(this.refs.text).value.trim();
    if (!text || !author) {
      return;
    }
    // TODO: send request to the server
    React.findDOMNode(this.refs.author).value = '';
    React.findDOMNode(this.refs.text).value = '';
    return;
  },
  render: function() {
    return (
      <form className="commentForm" onSubmit={this.handleSubmit}>
        <input type="text" placeholder="Your name" ref="author" />
        <input type="text" placeholder="Say something..." ref="text" />
        <input type="submit" value="Post" />
      </form>
    );
  }
});

var CommentBox = React.createClass({
  loadCommentsFromServer: function() {
    $.ajax({
      url: this.props.url,
      dataType: 'json',
      cache: false,
      success: function(data) {
        this.setState({data: data});
      }.bind(this),
      error: function(xhr, status, err) {
        console.error(this.props.url, status, err.toString());
      }.bind(this)
    });
  },
  getInitialState: function() {
    return {data: []};
  },
  componentDidMount: function() {
    this.loadCommentsFromServer();
    setInterval(this.loadCommentsFromServer, this.props.pollInterval);
  },
  render: function() {
    return (
      <div className="commentBox">
        <h1>Comments</h1>
        <CommentList data={this.state.data} />
        <CommentForm />
      </div>
    );
  }
});

React.render(
  <CommentBox url="comments.json" pollInterval={2000} />,
  document.getElementById('content')
);

[3] comments.json

[
    {
        "author": "Pete Hunt",
        "text": "Hey there!"
    },
    {
        "author": "Lao Wang",
        "text": "Mao !"
    }
    ,
    {
        "author": "Lao Li",
        "text": "Li !"
    }
]

转载于:https://my.oschina.net/u/612750/blog/469273

facebook react.js相关推荐

  1. React.js开发生态系统概览 [译-转]

    React.js 开发生态系统概览 [译] JavaScript领域发展速度很快,甚至有人认为这已经引起了负效应.一个前端库从早期开发的小玩具,到流行,再到过时,可能也就几个月时间.判断一个工具能否在 ...

  2. 如何使用React.js和Heroku快速实现从想法到URL的转变

    by Tom Schweers 由汤姆·史威士(Tom Schweers) 如何使用React.js和Heroku快速实现从想法到URL的转变 (How to go from idea to URL ...

  3. React.js核心原理实现:首次渲染机制

    2019独角兽企业重金招聘Python工程师标准>>> 一.前言 react.js和vue.js无疑是当下最火的js框架了,它们为组件式的开发传统前端页面.SPA页面.前后端分离等带 ...

  4. React.js 开发常见问题

    React.js 开发常见问题 我需要为 React.js 雇用专门的开发人员,还是说只要会 JavaScript 的员工就行? 如果你有了一支熟练的 JavaScript 开发团队,那么使用 Rea ...

  5. sublime67linter-php,Sublime Text 3 搭建 React.js 开发环境

    Sublime有很强的自定义功能,插件库很庞大,针对新语言插件更新很快,配合使用可以快速搭建适配语言的开发环境. 支持ES6, React.js, jsx代码高亮,对 JavaScript, jQue ...

  6. react.JS并非完全开源,百度、Wordpress等带头弃之

    屋漏偏逢连夜雨,来形容此时的facebook太恰当不过了,虽然facebook在国内被墙,但是作为一个web前端,其实我们还是在用着facebook的产品 -- react.JS ,也是目前很热门的一 ...

  7. 撰写本文的所有基本React.js概念

    Update: This article is now part of my book "React.js Beyond The Basics". 更新:本文现在是我的书<超 ...

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

    Sublime有很强的自定义功能,插件库很庞大,针对新语言插件更新很快,配合使用可以快速搭建适配语言的开发环境. 1. babel-sublime 支持ES6, React.js, jsx代码高亮,对 ...

  9. react.js基础

    现在最热门的前端框架有AngularJS.React.Bootstrap等.自从接触了ReactJS,ReactJs的虚拟DOM(Virtual DOM)和组件化的开发深深的吸引了我,下面来跟我一起领 ...

最新文章

  1. linux防火墙添加端口并开闭防火墙
  2. SVN从win迁移到Linux上
  3. Bug整理——$(window).height()获取到$(document).height()的问题
  4. [MetalKit]34-Working-with-memory-in-Metal内存管理
  5. [linux命令技巧] mkdir -p
  6. 电子商务时代企业统计的发展方向
  7. java代码实现解压文件_Java压缩/解压文件的实现代码
  8. c语言around用法,KET基础语法:介词among和around的用法及例句
  9. 计算机重启是什么原因,电脑自动重启,该怎么办,到底是什么原因,我来详细说明?...
  10. 百胜软件牵手晨光文具打造电商信息化平台
  11. 2015-FCN论文翻译
  12. 怎么进入计算机网络权限设置方法,电脑怎么设置网络访问权限保护共享文件安全...
  13. Excel如何批量添加批注
  14. qq群文件问题完美解决
  15. 小程序跳转小程序,小程序跳转公众号,小程序跳转h5
  16. 详解:S锁(读锁)和X锁(写锁)
  17. ElasticaSearch安装以及配置
  18. Pycharm—— 6 函数 和 7 公共运算符
  19. python实现atm取款机_python ATM机 案例代码
  20. Android MediaCodec硬编兼容性测试方案

热门文章

  1. webpack+vue解决前端跨域问题
  2. Java爬坑 -- 解决redis序列化java8 LocalDateTime错误的问题
  3. 不推荐使用getResources()。getColor()[重复]
  4. Google Maps API v3:如何删除所有标记?
  5. 如何将图例排除在情节之外
  6. main()在C和C ++中应该返回什么?
  7. SQL Server:如何加入第一行
  8. 如何设置Win11账户密码有效期?Win11账户密码使用期限设置教程
  9. Win11管理员已阻止你运行此应用,有关详细信息怎么处理?
  10. 此 Windows 副本不是正版的解决方案