博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hello reactjs
阅读量:7028 次
发布时间:2019-06-28

本文共 1398 字,大约阅读时间需要 4 分钟。

按照菜鸟教程的实例,学习的第一个reactjs组件。以下红色字体是我记录的学习过程中遇到的坑或者知识点。
var
 TodoList = React.createClass({//只是用来渲染Ul,他的props.items改变后会触发重新渲染;
  render: function() {
    var createItem = function(itemText) {
      return <li>{itemText}</li>;
    };
    return <ul>{this.props.items.map(createItem)}</ul>;/
/该方法遍历props.Items中的item,使他们被createItem调用。items.forEach(
function(i){
createItem(
i)}
)
  }
});
var TodoApp = React.createClass({
  getInitialState: function() {//
创建初始state
    return {items: [], text: ''};
  },
  onChange: function(e) {
    this.setState({text: e.target.value});//
通过事件获取值
  },
  handleSubmit: function(e) {
    e.preventDefault();
    var nextItems = this.state.items.concat([this.state.text]);
    var nextText = '';
    this.setState({items: nextItems, text: nextText});//
动态绑定,state中的值改变后,会触发 <input onChange={this.onChange} value={this.state.text} />
   
 
如果换一种做法:直接采用this.state.items.push(this.state.text);
   确实改变了this.state.items的值,然而并不能触发数据的流动,页面不会因此更新数据。所以必须通过setState()。
 
 },
  render: function() {//
最终渲染出口,需要用()包住元素
    return (
      <div>
        <h3>TODO</h3>//
切记闭合/
        <
TodoList items={this.state.items} />//
调用其他组件
        <form onSubmit={this.handleSubmit}>//
所有事件名需要严格地使用驼峰
          <input onChange={this.onChange} value={this.state.text} />//
state相关要加上{}包住
          <button>{'Add #' + (this.state.items.length + 1)}</button>//
这个button默认就带上了提交
        </form>
      </div>
    );
  }
});
 
React.render(<TodoApp />, document.getElementById("container"));

转载于:https://www.cnblogs.com/saac/p/5161887.html

你可能感兴趣的文章
Android Studio导入第三方类库的方法
查看>>
UBUNTU 自动挂载 NTFS
查看>>
CSharp设计模式读书笔记(0):设计原则(学习难度:★★☆☆☆,使用频率:★★★★★)...
查看>>
大话设计模式第九章---原型模式PHP实现
查看>>
什么是Solr
查看>>
poj2386(简单dfs)
查看>>
双链表的基本操作
查看>>
走进异步编程的世界 - 剖析异步方法(上)
查看>>
[HAOI2006]受欢迎的牛
查看>>
docker-maven-plugin 完全免Dockerfile 文件
查看>>
day20 Python 装饰器
查看>>
java的单例模式,始终保持一个实例
查看>>
我的代码,写的pagebase。还是留着吧。语义化,与我的云平台一样,只不过云平台是用js写的。这个是webform.下回写mvc吧。核心很简单。...
查看>>
内部类 匿名内部类
查看>>
限制性与非限制性定语从句区别
查看>>
linux环境php扩展pdo_mysq安装l错误
查看>>
android 从网络加载图片并显示
查看>>
阻止保存要求重新创建表的更改
查看>>
杭电1285--确定比赛名次(拓扑排序)
查看>>
mysql out of memory needed 8164 bytes 等问题
查看>>