React当中的组件嵌套很常见,外部组件暴露的属性也许会干一些复杂的实现细节。
我们可以使用属性延伸覆盖原来的属性值

var Component = React.createClass({render: function () {return <div {...this.props} title="zzz">this is a div</div>}
});React.render(<Component name="xxx" title="yyy"/>,document.body
);

手动转移

大部分情况你应该明确的向下传递属性,这样可以确保你只需要暴露内部API的一个子集。

var FancyCheckbox = React.createClass({render: function() {var fancyClass = this.props.checked ? 'FancyChecked' : 'FancyUnchecked';return (<div className={fancyClass} onClick={this.props.onClick}>{this.props.children}</div>);}
});
React.render(<FancyCheckbox checked={true} onClick={console.log.bind(console)}>Hello world!</FancyCheckbox>,document.getElementById('example')
);

但是name属性、title属性或者onMouseOver属性呢?

利用JSX ... 转移

var FancyCheckbox = React.createClass({render: function() {var { checked, ...other } = this.props;var fancyClass = checked ? 'FancyChecked' : 'FancyUnchecked';// `other` contains { onClick: console.log } but not the checked propertyreturn (<div {...other} className={fancyClass} />);}
});
React.render(<FancyCheckbox checked={true} onClick={console.log.bind(console)}>Hello world!</FancyCheckbox>,document.body
);

var { checked, ...other } = this.props;使用了ES7的结构化赋值,所以引入时要加入harmony,如下:

<script type="text/jsx;harmony=true">

React学习笔记—属性转移相关推荐

  1. react学习笔记1--基础知识

    什么是react A JAVASCRIPT LIBRARY FOR BUILDING USER INTERFACES[React是一个用于构建用户界面的JavaScript库.] React之所以快, ...

  2. react render没更新_web前端教程分享React学习笔记(一)

    web前端教程分享React学习笔记(一),React的起源和发展:React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写 ...

  3. react组件卸载调用的方法_好程序员web前端培训分享React学习笔记(三)

    好程序员web前端培训分享React学习笔记(三),组件的生命周期 React中组件也有生命周期,也就是说也有很多钩子函数供我们使用, 组件的生命周期,我们会分为四个阶段,初始化.运行中.销毁.错误处 ...

  4. React学习笔记 - 组件Props

    React Learn Note 4 React学习笔记(四) 标签(空格分隔): React JavaScript 三.组件&Props 组件可以将UI切分成一些独立的.可复用的部件,这样你 ...

  5. React学习笔记:入门案例

    React学习笔记:入门案例 React 起源于 Facebook 内部项目,因为市场上所有 JavaScript MVC 框架都不令人满意,公司就决定自己写一套,用来架设 Instagram 的网站 ...

  6. React学习笔记(五) 状态提升

    状态提升究竟是什么东西呢?别急,下面让我们一步一步来看看究竟要怎么使用状态提升 假设我们有这样一个需求,提供两个输入框(分别属于两个组件),保证输入框里面的内容同步 好,下面我们先来封装一个输入框组件 ...

  7. React学习笔记八-受控与非受控组件

    此文章是本人在学习React的时候,写下的学习笔记,在此纪录和分享.此为第八篇,主要介绍非受控组件与受控组件. 目录 1.非受控组件 1.1表单提交案例 1.2案例的总结 2.受控组件 2.1受控组件 ...

  8. React学习笔记二:实现一个数字时钟

    <!DOCTYPE html> <html lang="zhm"><head><meta charset="UTF-8" ...

  9. react学习笔记(完整版 7万字超详细)

    1. React基础 1-1. react-调试插件安装 浏览器右上角 - ===> 更多工具 ===> 扩展程序 ==> 开启开发者模式 ==> 将调试插件包拖拽进来即可 1 ...

最新文章

  1. 设计模式之原型模式(Prototype)摘录
  2. 全球IP地址数周内用完,或现无法上网情况
  3. Qt Creator中常用快捷键和小技巧
  4. java图形用户界面概述_Java中图形用户界面概述
  5. oracle服务器找不到怎么解决,简析Oracle数据库常见问题及解决方案
  6. wrapper 并集如何使用
  7. 面试必问: Spring IOC
  8. java 快速删除文件夹_如何用Java删除文件夹里的所有文件?
  9. matlab 识别调试,有关matlab的人脸识别程序,但调试是不成功
  10. C# 正则表达式 匹配IP地址
  11. html5从基础到入门,Html5从入门到精通系列2:Html5基础
  12. matlab读取三级文件夹方式
  13. Android,iOS打开手机QQ与指定用户聊天界面
  14. 微信小程序|基于小程序+C#实现聊天功能
  15. dnf mysql密码多少_DNF 台服数据库密码加密算法
  16. 程序员的护眼Style
  17. stimulsoft 变量
  18. STM32CubeMX和STM32CubeIDE组合,定义STM32开发新方式
  19. linux php zlib,Linux查询zlib版本
  20. 手撕深度学习中的优化器

热门文章

  1. application实现网页计数_SpringBoot整合NoSQL 数据库(Redis)实现缓存
  2. 关于 CSS will-change 属性你需要知道的事
  3. Linux下的JAVA命令参数_以java命令为例解析linux命令行调用语句
  4. java代码安全检测机制,Java语言有多种实现的机制,下列( )技术不属于代码安全检测。...
  5. MySQL设置数据格为空白或NULL
  6. Android的FileOutputStream和FileInputStream内部存储文件读取
  7. linux常见功能代码,几种功能类似Linux命令汇总(示例代码)
  8. Linux进入救援系统怎么恢复,Linux在rescue(救援)模式修复GRUB (引导菜单)
  9. 本田思域自动挡的使用技巧
  10. 使用批处理文件来操作注册表