React.js终探(五)

在React中,一切都是看做组件。

而组件的嵌套也是十分常见的。

所以有的组件就作为容器组件

容器组件

React元素可以包含子元素

1 //JSX
2 <ezpanel title="title">
3     <p>this is demo content</p>
4 </ezpanel>

在React中,用this.props.children可以访问子元素

如:

1 var EzPanel = React.createClass({
2     render : function(){
3         return     <div className="ez-panel">
4                     {this.props.children}
5                 </div>;
6     }
7 });

这样就可以把在React.render()中写的子元素放到相应的容器中了。

JSX可展开属性

1 //JSX
2 <div classname="ez-slider" onmousedown="{this.onMouseDown}" onmousemove="{this.onMouseMove}" onmouseup="{this.onMouseUp}"></div>

在JSX中,有时候可能我们的React元素有很多的属性。

JSX提供了一个比较好的特性来支持这种情况。即可设置一个JSON对象作为属性包。

格式如: <xx {...yy}></xx>

如:

 1 //定义属性包
 2 var props = {
 3     className : "ez-slider",
 4     onMouseDown : this.onMouseDown,
 5     onMouseUp : this.onMouseUp,
 6     onMouseMove : this.onMouseMove
 7 };
 8
 9 //传入属性包
10 var rel = <div {...props}></div>;

这篇就这么多先吧

时间: 2025-01-04 16:27:50

React.js终探(五)的相关文章

React.js终探(七)(完)

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

React.js再探(二)

上文中说到了组件了. 我们使用组件的目的最大莫过于复用,提供生产效率. 那么,这时候组件就应该能够提供一些”api”出来,让开发者去定义在不同场景下的不同表现,比如,行为或外观等. 而这些“api”就是 属性   在React中,用 props 访问实例元素的属性 属性:props 比如在JSX片段中,组件的实例元素有一个属性onoff: 1 React.render( 2 <ezlampcomp onoff="off"></ezlampcomp> , 3 do

React.js再探(四)

不知道看官们还记不记得上一节的内容,关于生命周期的.我们来个例子重温且练习一下. 传送门:http://www.cnblogs.com/galenyip/p/4574400.html 我们来实现一下时钟的功能,要求当秒是“0”的时候,字体变为红色.注意用componentWillUpdate实现. 如       当秒是0   变为 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8&qu

React.js再探(三)

很多时候,组件实例的外观和行为我们通过props进行定制就可以了.因为任何时候,组件实例的表现只跟 传过来的props属性 相关. 我们称这种为 无状态/ stateless 组件 即它自身是 无记忆的 比如切换开关,它可以响应用户的点击事件,如果当前状态是关,那么它就 切换到开的状态(显示开状态的图片):而如果当前状态是开,那么它就切换到关的 状态(显示关状态的图片) 状态记忆:state React引入了状态机的概念,让组件具有不同的状态,使得组件具有记忆功能 具体如下: state ——组

react.js从入门到精通(五)——组件之间的数据传递

一.组件之间在静态中的数据传递 从上面的代码我们可以看出,两个组件之间的数据是分离,但如果我们有某种需求,将数据从一个组件传到另一个组件中,该如何实现? 场景设计: 将Home.js中的HomeData传递到MyScreen.js中 import React,{ Component } from 'react' import MyScreen from "./MyScreen"; class Home extends Component { constructor(props) { s

react.js

---恢复内容开始--- 一.React的定义 React 是由Facebook 创建的一个开源项目.它提供了一种在JavaScript中构建用户界面的全新方式.react针对的是现代风格的JavaScript开发生态系统.React 是一个使用JavaScript 和XML技术(可选)构建可组合用户界面的引擎.下面对React定义的每个部分加以详细的说明: React 是一个引擎:React的网站将它定义为一个库,但是我觉得使用"引擎"这个词更能体现出React的核心优势:用来实现响

react+redux教程(五)异步、单一state树结构、componentWillReceiveProps

教程目录 react+redux教程(一)connect.applyMiddleware.thunk.webpackHotMiddleware react+redux教程(二)redux的单一状态树完全替代了react的状态机? react+redux教程(三)reduce().filter().map().some().every()....展开属性 react+redux教程(四)undo.devtools.router react+redux教程(五)异步.单一state树结构.compo

React.js实现原生js拖拽效果及思考

一.起因&思路 不知不觉,已经好几天没写博客了...近来除了研究React,还做了公司官网... 一直想写一个原生js拖拽效果,又加上近来学react学得比较嗨.所以就用react来实现这个拖拽效果. 首先,其实拖拽效果的思路是很简单的.主要就是三个步骤: 1.onmousedown的时候,启动可拖拽事件,记录被拖拽元素的原始坐标参数. 2.onmousemove的时候,实时记录鼠标移动的距离,结合被拖拽元素第一阶段的坐标参数,计算并设置新的坐标值. 3.onmouseup的时候,关闭可拖拽事件

React.js入门

React 入门实例教程 现在最热门的前端框架,毫无疑问是 React . 上周,基于 React 的 React Native 发布,结果一天之内,就获得了 5000 颗星,受瞩目程度可见一斑. React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设Instagram 的网站.做出来以后,发现这套东西很好用,就在2013年5月开源了. 由于 React 的设计思想极其独特,属于革命性创新,性能出众,代码