react点滴
1.<SubSubComp {...this.props } /> 传递属性,{...props}的方式为组件传递了这两个属性,这就是JSX中的延展属性,"..."成为延展操作符,这种方式可以很方便地为组件指定多个属性 http://blog.csdn.net/yubo_725/article/details/50531817
2.mixin那里我真的没有看懂哈。
3.
<script type="text/jsx">
var FormApp = React.createClass({
getInitialState:function(){
return {
inputValue: 'input value',
selectValue: 'A',
radioValue:'B',
checkValues:[],
textareaValue:'some text here,,,'
}
},
handleSubmit:function(e){
e.preventDefault();
var formData = {
input: this.refs.goodInput.getDOMNode().value,
select: this.refs.goodSelect.getDOMNode().value,
textarea: this.refs.goodTextarea.getDOMNode().value,
radio: this.state.radioValue,
check: this.state.checkValues,
}
console.log('the form result is:')
console.log(formData);
this.refs.goodRadio.saySomething();
},
handleRadio:function(e){
this.setState({
radioValue: e.target.value,
})
},
handleCheck:function(e){
var checkValues = this.state.checkValues.slice();
var newVal = e.target.value;
var index = checkValues.indexOf(newVal);
if( index == -1 ){
checkValues.push( newVal )
}else{
checkValues.splice(index,1);
}
this.setState({
checkValues: checkValues,
})
},
render: function(){
return (
<form onSubmit={this.handleSubmit}>
<input ref="goodInput" type="text" defaultValue={this.state.inputValue }/>
<!-- 这里的ref还可以这样写哈 function(comp){React.findDOMNode(comp).focus()} -->
<br/>
选项:
<select defaultValue={ this.state.selectValue } ref="goodSelect">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="E">E</option>
</select>
<br/>
<p>radio button!</p>
<RadioButtons ref="goodRadio" handleRadio={this.handleRadio} />
<br/> <Checkboxes handleCheck={this.handleCheck} />
<br/>
<textarea defaultValue={this.state.textareaValue} ref="goodTextarea"></textarea>
<button type="submit">提交</button>
</form>
)
}
}); var RadioButtons = React.createClass({
saySomething:function(){
alert("yo what's up man!");
},
render:function(){
return (
<span>
A
<input onChange={this.props.handleRadio} name="goodRadio" type="radio" value="A"/>
B
<input onChange={this.props.handleRadio} name="goodRadio" type="radio" defaultChecked value="B"/>
C
<input onChange={this.props.handleRadio} name="goodRadio" type="radio" value="C"/>
</span>
)
}
});
var Checkboxes = React.createClass({
render: function(){
return (
<span>
A
<input onChange={this.props.handleCheck} name="goodCheckbox" type="checkbox" value="A"/>
B
<input onChange={this.props.handleCheck} name="goodCheckbox" type="checkbox" value="B" />
C
f<input onChange={this.props.handleCheck} name="goodCheckbox" type="checkbox" value="C" />
</span>)
}
}) var formApp = React.render(
<FormApp />,
document.getElementById('app')
) </script>
4.minxins的双向数据绑定。
<script type="text/jsx">
var EasyForm = React.createClass({
mixins: [ React.addons.LinkedStateMixin ],
getInitialState:function(){
return {
message: 'react is awesome!',
isReactAwesome: true,
}
},
render:function(){
return (
<div>
<h1>我想说: {this.state.message}</h1>
<h2>React是不是很好用? {this.state.isReactAwesome?'非常好用!':'一般般。。。'}</h2>
<input type="text" valueLink={this.linkState('message')} />
<br/>
<input type="checkbox" checkedLink={this.linkState('isReactAwesome') } />
<br/>
<SubComp messageLink={ this.linkState('message') } likeLink={this.linkState('isReactAwesome')} /> </div>
)
}
}); var SubComp = React.createClass({
render:function(){
return (
<div>
<h3>这是个子组件哦</h3>
<SubSubComp {...this.props } />
</div>
)
}
}); var SubSubComp = React.createClass({
render:function(){
return (
<div>
<p>你想说什么?</p>
<input type="text" valueLink={ this.props.messageLink } />
<p>你稀罕React么?</p>
<input type="checkbox" checkedLink = {this.props.likeLink } />
</div>
)
}
}) React.render( <EasyForm />, document.getElementById('app') ); </script>
4.生命周期的函数:
getInitialState
getDefaultProps
componentWillMount
componentDidMount
componentWillUnmount
killMySelf
shouldComponentUpdate
componentWillUpdate
componentDidUpdate
doUpdate
react点滴的更多相关文章
- js的点滴
一些好的博客 http://www.cnblogs.com/coding4/p/7809063.html canvas http://www.cnblogs.com/coding4/p/5593954 ...
- React Native实战系列教程之自定义原生UI组件和VideoView视频播放器开发
React Native实战系列教程之自定义原生UI组件和VideoView视频播放器开发 2016/09/23 | React Native技术文章 | Sky丶清| 4 条评论 | 1 ...
- react组件的生命周期
写在前面: 阅读了多遍文章之后,自己总结了一个.一遍加强记忆,和日后回顾. 一.实例化(初始化) var Button = React.createClass({ getInitialState: f ...
- 十分钟介绍mobx与react
原文地址:https://mobxjs.github.io/mobx/getting-started.html 写在前面:本人英语水平有限,主要是写给自己看的,若有哪位同学看到了有问题的地方,请为我指 ...
- RxJS + Redux + React = Amazing!(译一)
今天,我将Youtube上的<RxJS + Redux + React = Amazing!>翻译(+机译)了下来,以供国内的同学学习,英文听力好的同学可以直接看原版视频: https:/ ...
- React 入门教程
React 起源于Facebook内部项目,是一个用来构建用户界面的 javascript 库,相当于MVC架构中的V层框架,与市面上其他框架不同的是,React 把每一个组件当成了一个状态机,组件内 ...
- 通往全栈工程师的捷径 —— react
腾讯Bugly特约作者: 左明 首先,我们来看看 React 在世界范围的热度趋势,下图是关键词“房价”和 “React” 在 Google Trends 上的搜索量对比,蓝色的是 React,红色的 ...
- 2017-1-5 天气雨 React 学习笔记
官方example 中basic-click-counter <script type="text/babel"> var Counter = React.create ...
- RxJS + Redux + React = Amazing!(译二)
今天,我将Youtube上的<RxJS + Redux + React = Amazing!>的后半部分翻译(+机译)了下来,以供国内的同学学习,英文听力好的同学可以直接看原版视频: ht ...
随机推荐
- bzoj5421:收藏家
bzoj5421 贴一张图 关于对问题的转化: 当两个人交换收藏品时,显然我们进行这个操作是为了得到更优解. 那么一个收藏品是有用的,另一个被换走的收藏品可以当做直接扔掉了. 所以只要保留一个就可以了 ...
- 批处理no.bat
在公司每次我启动电脑, 网络连接需要一段时间, 而我想在这段小时间里面, 一旦网络连接成功就帮我启动微信和qq, 如果还没有连接成功就继续监测直到有网络了才会成功才会打开两个程序, 当打开程序后脚本自 ...
- python,pycharm安装
下载python地址:https://www.python.org/downloads/release/python-371/ 安装python ***python安装目录下的scripts加入环境变 ...
- 20145320《WEB基础实践》
20145320WEB基础实践 实验问题回答 1.什么是表单 表单可以收集用户的信息和反馈意见,是网站管理者与浏览者之间沟通的桥梁. 一个表单有三个基本组成部分: 表单标签 表单域:包含了文本框.密码 ...
- 安装ubuntu的坑&RHEL7配置
1.需要其他设置->分区,分区需要有/根目录分区和swap空间,后者文件系统类型选择swap,其他都是ext4 2.普通配置电脑,安装16.04.5 LTS,不要安装最新的,安装重启后卡在那里, ...
- p3398 仓鼠找sugar (LCA+讨论)
分情况讨论,结果是两条路径有公共点时,深度大的LCA在另一条路径上且另一条路径的两个端点至少其中一个的与深度大的LCA的LCA为那个深度大的LCA #include <cstdio> #i ...
- [LightOJ 1341] Aladdin and the Flying Carpet (算数基本定理(唯一分解定理))
题目链接: https://vjudge.net/problem/LightOJ-1341 题目描述: 问有几种边长为整数的矩形面积等于a,且矩形的短边不小于b 算数基本定理的知识点:https:// ...
- redis事务之watch
三.redis事务之watch 首先要了解redis事务中watch的作用,watch命令可以监控一个或多个键,一旦其中有一个键被修改(或删除),之后的事务就不会执行.监控一直持续到exec命令(事务 ...
- UI、JS框架----Bootstrap、Metro
Bootstrap Datagrid EasyUI Metro bootstrap Datepicker Editable for Bootstrap:bootstrap-editable.js X- ...
- Execl矩阵如何转化成Pajek的net文件
在科研中我们有时会把把execl矩阵利用Ucinet.Pajek等可视化软件进行画图,而想要把execl矩阵转化为 Pajek可识别的文件-->net文件令很多初学者头疼不已,本文将做详细介绍. ...