facebook开源前段UI框架React初探

最近最火的前端UI框架非React莫属了。赶紧找时间了解一下。

项目地址:http://facebook.github.io/react/

官方的介绍:A JavaScript library for building user interfaces (前端UI的js框架)

具有三个特点:

Just the UI

Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it‘s easy to try it out on a small feature in an existing project. (一般人们将React用于实现前端MVC中的view中,因为React并不假定你使用的其它前端技术堆栈,所以很容易在已经存在的项目中试用。)

Virtual DOM

React abstracts away the DOM from you, giving a simpler programming model and better performance. React can also render on the server using Node, and it can power native apps using React Native. (使用React我们并不直接操作浏览器中的DOM,React引入了虚拟DOM的概念,我们使用js代码直接生成虚拟DOM节点,然后React负责将虚拟DOM节点到实际DOM节点的转换,这样的话,是前端UI编程更加的简单而言性能更好。)

Data flow

React implements one-way reactive data flow which reduces boilerplate and is easier to reason about than traditional data binding.(React实现单向的数据流,从而减少了传统数据绑定的模板文件,而且更加容易理解)

其实我自己的理解是:React是一个将前端UI组件化的框架,它可以将页面上的各种UI实现为一个一个的组件,我们向组件传入数据,React负责生成对应的UI,然后进行渲染。实现方式是虚拟DOM和单向数据流,虚拟DOM提供了更好的性能,因为比如一个UI组件包含多个html标签元素,如果我们需要修改其中的几个标签中的数据的话,就会对DOM操作几次(比如使用jquey),然而使用虚拟DOM,我们是先在内存中生成整个UI组件,然后一次性将虚拟DOM转换渲染到实际DOM,所以对实际DOM的操作只有一次。单向数据流是指没有数据的双向绑定,数据只从Model向View传送,每次更新都是使用一个全新的UI组件替换页面上旧的UI组件,更加的简单。

其实React最大特点是:UI组件化和UI整体替换的更新方式,然后才是性能更好,更加简单。组件化就容易维护,方便重用。

实例:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="build/react.js"></script>
<script src="build/JSXTransformer.js"></script>
</head>
<body>
  <div id="example"></div>

<script type="text/jsx">
React.render(
    <h1>Hello, world!</h1>,
    document.getElementById(‘example‘)
);
</script>
</body>
</html>

上面代码导入React的js库react.js,而JSXTransformer.js是将页面上 type="text/jsx" 的代码转换成 text/javascript 代码的转换库。转换可以再浏览器端进行,也可以使用Nodejs再服务端进行。实际项目运行都是在服务端进行转换。我们先看下在浏览器端进行转换的效果:

可以看到React成功渲染出了一个UI组件,但是下面提示我们应该先在服务端预编译 jsx 脚步。

然后我们再看服务端转换预编译 jsx 方法:

安装Node.js:到 https://nodejs.org/ 下载对应平台的安装文件:node-v0.12.2-x86.msi

我是win7 64位,双击一路下一步安装完成。配置系统路径,将 D:\nodejs 加入 path, 新建系统变量:NODE_PATH,值为:D:\nodejs\node_modules\

安装 react-tools: npm install react-tools

安装成功如下图:

再预编译 jsx 脚步之前,我们将它提取出来,单独放入一个文件:helloworld.js

React.render(
  <h1>Hello, world!</h1>,
  document.getElementById(‘example‘)
);

然后调用react-tool中的 jsx 脚步来编译:

上面讲 当前目录下的 jsxfile 文件夹中的所有的 jsx 脚步编译到 当前目前下的 result 文件夹下,编译之后的代码为:

React.render(
  React.createElement("h1", null, "Hello, world!"),
  document.getElementById(‘example‘)
);

React.createElement("h1", null, "Hello, world!") 表示生产一个 h1 标签,内容为 "Hello, world!",然后React.render(),将生产的h1标签渲染插入到document.getElementById(‘example‘)节点下去。最后的helloworld.html的内容为:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="build/react.js"></script>
</head>
<body>
    <div id="example"></div>

<script type="text/javascript">
React.render(
    React.createElement(‘h1‘, null, ‘Hello, world!‘),
    document.getElementById(‘example‘)    // $("#example")[0]
);
</script>
</body>
</html>

注意这里我们将 JSXTransformer.js 文件去掉了,并且将 text/jsx 改成了 text/javascript. 当然我们也可以将编译生产的js单独放入一个文件,然后使用 <script type="text/javascript" src="xxx"> 引入到页面。

效果为:

未完待续...

时间: 2024-10-28 20:14:48

facebook开源前段UI框架React初探的相关文章

ym——Android酷炫实用的开源框架(UI框架)(终)

转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! 前言 好久没写博文了,最近工作比较忙,剩下的一点点时间在做自己的项目,在Android酷炫实用的开源框架(UI框架)这篇文章中提到了很多开源的UI框架,我在自己的项目开发中也使用了大部分的,但是总觉得仅仅这几个不够用啊,所以本人在此做项目期间又找到了更多优秀的开源UI框架,在此分享给大家希望能对大家有所帮助,大家记得关注我哦~!在此篇之后就给大家带来优秀的HTTP框架和DB框架了!

推荐几个精致的web UI框架及常用前端UI框架

以下是几个精致的web UI框架 1.Aliceui Aliceui是支付宝的样式解决方案,是一套精选的基于 spm 生态圈的样式模块集合,是 Arale 的子集,也是一套模块化的样式命名和组织规范,是写 CSS 的更好方式. gitHub地址:https://github.com/aliceui/aliceui.github.io 2.Amazeui Amaze UI 是一个轻量级. Mobile first 的前端框架, 基于开源社区流行前端框架编写的. 官网地址:http://amazeu

jQuery ui 框架

jQuery ui框架很多,除了官方提供的jquery UI(如果你还不知道什么是jQuery UI,请看下载了jquery ui后如何使用),还有很多第三方提供的ui框架,因官方提供的jquery ui框架体积较大,所以很多人都不喜欢用,但不论是官方提供还是第三方提供,他们都是基于jquery核心类库实现的ui框架.    1.jQuery Smart UI 官网地址http://smartui.chinamzz.com JQuery Smart UI是基于JQuery的Ajax开发的一个jq

深入探讨ui框架

深入探讨前端UI框架 1 前言 先说说这篇文章的由来 最近看riot的源码,发现它很像angular的dirty check,每个component ( tag )都保存一个expressions数组,更新时,遍历expressions数组,重新求值,对比旧值,如果有变更则更新DOM. 这不就是dirty check吗?为什么riot还声称它实现了virtual DOM? 疑惑之下,就去复盘了一下各大前端框架,把一些收获分享给大家 本文内容很多,实在不知道怎么取标题,最终取了一个泛泛的标题,请读

前端随心记---------vuejs流行的UI框架

一:Element element ui框架的按钮组件,这款由饿了么前端开源的UI框架,一经面世,就收获大量程序员的芳心.在github 上更是高达29.8k的star早已说明一切.用于开发PC端的页面还是绰绰有余的.如果说你是用vue开发者,却没用过element UI,那你肯定不是合格的vue开发者. 文档地址:http://element-ui.cn 二:iview iView 是一套基于 Vue.js 的开源 UI 组件库,主要服务于 PC 界面的中后台产品.使用单文件的 Vue 组件化

【Facebook的UI开发框架React入门之九】按钮简介(iOS平台)-goodmao

--------------------------------------------------------------------------------------------------- React.native是facebook开源的一套基于JavaScript的开源框架, 很方便用来开发移动设备的app. 而且,方便及时更新app的UI与数据,也很方便部署. goodmao希望帮助大家迅速上手掌握! ----------------------------------------

10 个打造 React.js App 的最佳 UI 框架

在本文中,我们将分享一些助你打造 React.js App 最佳的 UI 框架.它们具备你所需要的基本 React 组件,以及易用的 API,同时,在外观和体验上也非常棒.Have Fun ! 1. Material-UI 基于谷歌 Material Design 设计规范的 React 组件 此外,它还是 React 的第一个 UI 套件.Material-UI具备你所需要的所有组件(甚至更多),以及可配置性极高的预定义调色板和<MuiThemeProvider>,帮助你为应用程序定制相应的

【Facebook的UI开发框架React入门之七】多View布局与样式Style简介(iOS平台)-goodmao

--------------------------------------------------------------------------------------------------- React.native是facebook开源的一套基于JavaScript的开源框架, 很方便用来开发移动设备的app. 而且,方便及时更新app的UI与数据,也很方便部署. goodmao希望帮助大家迅速上手掌握! ----------------------------------------

Facebook开源的JavaScript库:React

React是Facebook开源的JavaScript库,采用声明式范例,可以传递声明代码,最大限度地减少与DOM的交互. React是Facebook开源的JavaScript库,用于构建UI.你可以在React里传递多种类型的参数,如声明代码,帮助你渲染出UI.也可以是静态的HTML DOM元素.也可以传递动态变量.甚至是可交互的应用组件.(文字来自JS开发者微博) 特点: 声明式设计:React采用声明范式,你可以轻松描述你的应用 高效:Reeact通过对DOM的模拟表现,最大限度地较少与